需求背景:

    直接访问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模块解决,解决方法略