Nginx配置反向代理及请求头

修改时间: 2020-05-29 23:38:38 PM

文章时间:2020年5月29日 14:30:04
解决问题:Nginx+Tomcat配置反向代理及配置请求头
基于环境:Windows server2016 64位+Tomcat8.5+宝塔7.2+Nginx1.17+JDK1.8

出现问题描述:上线一个小项目,使用的技术是Tomcat和Nginx,使用Tomcat跑基础服务,使用Nginx做反向代理,并对外提供服务。正常代理后,用户端访问的页面均正常,只是登录运营端,出现了js和css无法加载,地址显示的还是127.0.0.1,导致运营端所有功能无法正常使用。经查阅大量资料后发现最简单的实现方案,设置请求头。

Tomcat和JDK均为独立安装,只使用了宝塔安装了Nginx,是为了方便可视化管理和配置。

核心配置代码如下:

#动态文件不处理
location /
    {
        expires 12h;
        if ($request_uri ~* "(php|jsp|cgi|asp|aspx)")
        {
             expires 0;
        }
        proxy_pass http://域名:端口号;
        proxy_set_header Host 域名;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_buffering  off;
        proxy_buffer_size  4k;

        add_header Cache-Control no-cache;
        add_header X-Cache $upstream_cache_status;

        proxy_set_header Accept-Encoding "";

        sub_filter_once off;

        #开启缓存
        #proxy_cache cache_one;
        #proxy_cache_key $host$uri$is_args$args;
        #proxy_cache_valid 200 304 301 302 12h;
    }

proxy_set_header用来重定义发往后端服务器的请求头。

注意

在nginx的配置文件中,如果当前模块中没有proxy_set_header的设置,则会从上级别继承配置。
继承顺序为:http, server, location。

添加新评论