需求背景:
直接访问Tomcat项目路径如下:
http://10.8.1.5:8080/erp
要求使用www.erp.com访问是可以访问至http://10.8.1.5:8080/erp
需求分析:
这里不可以使用简单的反向代理,因为后端服务器有目录(erp)存在,而为了访问友好www.erp.com后端不能加目录,所以不能纯粹的使用nginx根据目录来匹配后端服务器,最终实现效果nginx配置如下:
server {
listen 80;
server_name www.erp.com;
location / {
rewrite ^/(.*)$ http://www.erp.com/erp/$1 permanent;
}
location /erp {
proxy_pass http://10.8.1.5:8080/erp;
proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
access_log /var/log/nginx/erp.log main;
}
以上配置只反代了一台服务器,如果有多台服务器可以使用upstream模块解决,解决方法略