您好,欢迎访问一九零五行业门户网

Nginx配置总结

修改nginx服务器配置,在conf文件下的nginx.conf文件。
#user nobody; #运行用户#worker_processes 1; #启动进程数,通常设置成和cpu数目相同#error_log /var/log; #错误日志events { worker_connections 1024;#单个后台work process进程最大并发链接数}#设定http服务器http{ #设定mime类型,类型由mime.type文件定义 include /etc/nginx/mime.types; default_type application/octet-stream; #设定日志格式 access_log /var/log/nginx/access.log; sendfile on; #连接超时时间#keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; #集群中的所有后台服务器的配置信息,用于负载均衡 upstream local_tomcat{ server 192.168.0.111:80; server 192.168.0.109:8080; } server{ listen 8090; #当前代理服务器监听端口 server_name localhost:80; #监听后要转到地址#charset koi8-r;#access_log logs/host.access.log main; location / { #location表示匹配路径,/表示所有请求 root html; #静态文件存放的路径 index index.html index.htm; #没有主页时,此为主页,可多个 } #error_page 404 /404.html;# redirect server error pages to the static page/50x.html error_page 500502503504 /50x.html; location = /50x.html { root html; } }}
常见问题总结:
1. nginx+tomcat影响request值
request.getscheme() //总是 http,而不是实际的http或https
request.issecure() //总是false(因为总是http)
request.getremoteaddr() //总是 nginx 请求的 ip,而不是用户的ip
request.getrequesturl() //总是 nginx 请求的url 而不是用户实际请求的 url
request.getservername //总是nginx请求的ip
request.getserverport //总是nginx请求的端口
response.sendredirect( 相对url ) //总是重定向到 http 上 (因为认为当前是 http 请求)
解决方法:
修改nginx配置:
proxy_set_header host $host; #解决getrequesturl、getservername、getserverport问题proxy_set_header x-real-ip $remote_addr;#把真实的ip发送给转发的web服务器proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;#解决request.getscheme()只能返回http而不是https问题
配置tomcat的server.xml的engine模块,配置一个value
valveclassname=org.apache.catalina.valves.remoteipvalveremoteipheader=x-forwarded-forprotocolheader=x-forwarded-protoprotocolheaderhttpsvalue=https />
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了nginx配置总结,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息