文章目录
Nginx的反向代理,即可以基于端口进行,也可以基于域名进行。
过多的端口开放,可能意味更高的安全风险,因此只开放一个端口,比如80端口,然后根据域名的不同转发到不同的项目路径或服务器,同样有较多的使用场景。
server {
listen 80;
server_name farm.test.cn; #域名1
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
root /mnt/web/web_farming/h5; #域名1的根目录
index index.html index.htm;
}
}
server {
listen 80;
server_name www.test.com; #域名2
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
root /mnt/web/offical; #域名2的根目录
index index.html index.htm;
}
}
上面的配置方式只是转发往不同的静态页面,如果是动态页面,那么server的配置方式为:
server {
listen 80;
server_name farm.test.cn;
location /h5 {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
root /mnt/web/web_farming;
index index.html index.htm;
}
location / {
proxy_pass http://localhost:8080;
}
}
达到的效果为:
- 用户访问
farm.test.cn/h5
时,可以代理到/mnt/web/web_farming/h5/index.html
这个页面 - 当页面中发起网络请求时,可以转发到
http://localhost:8080
服务器进行处理