nginx

websocket proxy websocket tomcat

配置参考:

location /ws/wschat {
   proxy_pass http://localhost:8080/ws/wschat;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "Upgrade";
   proxy_pass_header X-XSRF-TOKEN;
   proxy_set_header Origin "http://localhost:8080";
   proxy_read_timeout 3600s;
}

上述配置的timeout超时时间为一个小时

官方说明 403错误问题处理,spring security

配置文本文件在线查看

location中配置

default_type “text/html”;

隐藏版本号

http中配置

server_tokens off;

上传文件大小限制

client_max_body_size 50M; 值设置为0表示不限制

配置文件详解

Nginx配置文件nginx.conf详解

性能调优

Nginx性能调优

常用命令

nginx -t #测试配置是否有语法或者解析异常
nginx -s reload #刷新配置

关于x-forwarded-forwarded

http://lavafree.iteye.com/blog/1559183

nginx默认配置

location / {
   proxy_pass http://localhost:8080/;
   proxy_set_header Host $http_host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $http_x_forwarded_for;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

代理静态资源

location ^~ /resource/ {
    alias ../../project/projectname/src/main/webapp/_resource/;
}

location ^~ /resource/ {
    root ../../project/projectname/src/main/webapp/;
}

使用alias可以将resource映射为其他目录,windows路径要使用相对路径(不支持绝对路径)

注意root和alias的区别

root,”/resource/img/123.png”最终访问目录全路径为$nginx_home/../../project/projectname/src/main/webapp/resource/img/123.png;

即文件会把root对应的目录作为根目录

alias, “/resource/img/123.png”最终访问目录全路径为$nginx_home/../../project/projectname/src/main/webapp/_resource/img/123.png;

即文件目录/resource/会被替换为$nginx_home/../../project/projectname/src/main/webapp/_resource/;

由此可以得出结论,root映射只能映射到同名目录,但是alias可以映射到非同名目录,可以实现将/resource/映射到/_resource/目录下

注意事项

ngx_http_proxy_module代理模块中一些默认配置可能会影响应用的执行逻辑。

例如:proxy_set_header的Host,默认值为$proxy_host,$proxy_host的值获取的是proxy_pass的值,会导致host和预想中不一致。

如下配置:

listen       80;
server_name  localhost;
location / {
    proxy_pass http://localhost:8080/;
}

那么request header中的host值为localhost:8080,而如果request header中有referer的话,referer的值会是”http://localhost/xxx/xxx?xxx=xxx”