Nginx在实际项目开发的应用场景中非常多,主要是用来实现反向代理的功能。反向代理就是指用户访问某个ip端口备通过域名或者二级地址,无感转发到另一个全新的端口,展示那个端口上部署的项目。本文将介绍如何配置Nginx服务器实现反向代理。
一、安装Nginx
参考我之前写过的文章:Windows安装Nginx
二、Nginx反向代理逻辑示意图
三、配置Nginx,实现单个项目反向代理
我们这里要配置Nginxconfnginx.conf文件。
找到sever的参数。
listen:监听的端口;
(监听端口需要避免占用,尤其是win-server,需要关闭IIS在80端口的默认项目)
server_name:监听的域名(填写localhost即为公网IP);
location里proxy_pass:设置转发的目标地址;
代码语言:javascript复制server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
http://124.xxx.xx.21:8080/pages/index.html; # 设置转发的目标地址
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
这里给出的例子的意思是:当收到公网IP的访问时,转发请求到http://124.xxx.xx.21:8080/pages/index.html。
四、配置Nginx,实现多个项目反向代理
下面是带有多个server的写法:
代码语言:javascript复制 upstream lanxin{
server localhost:8080;
}
upstream damon{
server localhost:8081;
}
server {
listen 80;
server_name lanxinyun.com;
location / {
proxy_pass http://lanxin;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name damon-liu.work;
location / {
proxy_pass http://damon;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
80端口监听,当访问域名为lanxinyun.com时跳转到8080端口发布的项目,damon-liu.work域名访问则跳转到8081端口发布的项目。
五、结束语
通过反向代理,我们实现了同一端口的复用(通过Nginx配置不同的域名监听,跳转到不同的项目),这在项目中非常常见,是当代程序员必备技能点。