Nginx常用配置

问题1场景:

Nginx+Tomcat搭建,且cms由Nginx进行代理转发。如常见的8080端口转到80,或者其他服务器的80或8080端口等情况。之后通过80端口访问cms的时候发现前端以及后台很多的js加载一半,出现如图错误:直接访问相关js也发现内容确实只加载了一半,强制刷新无用,依然只有一半。但是直接访问tomcat的80或者8080端口发现是没有问题的。

问题1原因:

Nginx代理之后会有相应的代理缓存区,缓存区默认只有几十K,某些版本的nginx默认设置中没有相关处理,导致部分文件代理是会出现加载不全的现象,其实不仅仅是JS文件。只是因为框架的JS文件略大,所以经常出现类似问题。

问题1解决:

在Nginx.conf中添加(http或者server中)

proxy_buffer_size 128k;
proxy_buffers   32 128k;
proxy_busy_buffers_size 128k;

 

问题2场景:

Nginx监听8080,并将请求转发到后端的5050 glassfish上,客户端在请求某个资源时,从浏览器的开发者工具看到请求的连接是 127.0.0.1:5050,而本来客户端需要请求的连接是 test.example.com:8080 。

我的nginx配置是

server {
        listen  8080 ;
        server_name  test.example.com ;
        location / {
                proxy_pass http://127.0.0.1:5050;
        }
}

问题2原因:

程序代码中生成请求地址是根据源链接来的,nginx需要对host进行转发。

问题2解决:

在上面的location中添加如下配置

proxy_set_header Host $http_host;

 

你可能感兴趣的:(nginx)