nginx一个端口代理多个前后端服务
2022-05-13 本文已影响0人
李哈哈_2c85
1、代理多个前端服务:
必须使用alias----(这我很不理解为什么,都用root就会404,有知道的大神请告知下!)
使用alias和root区别:在于资源路径的匹配解读上!
访问root定义的资源路径,会带着location后的uri和root指定的资源路径组合在一起去访问服务器资源;alias是忽略localtion后的uri,直接访问alias指定的资源路径;
假设访问的域名:www.123.com/abc 那么url = www.123.com/abc uri = abc
server {
listen 9002;
server_name loaclhost;
gzip on;
gzip_min_length 256;
gzip_comp_level 6;
gzip_types text/plain text/css text/javascript image/png image/jpg image/jpeg application/xml application/x-javascript application/javascript ;
gzip_vary on;
gzip_proxied any;
location / {
root /data/web/feparkingh5;
try_files $uri $uri/ /index.html;
index index.html index.htm;
access_log /var/log/nginx/feparkingh5_log main;
}
location /feparkinglotweb {
alias /data/web/feparkinglotweb/;
try_files $uri $uri/ /feparkinglotweb/index.html;
index index.html index.htm;
access_log /var/log/feparkinglotweb_log main;
}
location /ftp {
alias /data/web/ftp/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
access_log /var/log/ftp_log main;
}
}
2、前后端or多个后端结合代理
增加相应的location
访问的时候后面添加对应的路径 :
如下图
访问 16.168.139.227:8082 默认会代理到16.168.139.227:8085端口
访问 16.168.139.227:8082/img就会自动代理到16.168.139.180/img下