Ändern Sie die Nginx-Serverkonfiguration, die Datei nginx.conf unter der Datei conf.
<code><span>#user nobody; #运行用户</span><span>#worker_processes 1; #启动进程数,通常设置成和cpu数目相同</span><span>#error_log /var/log; #错误日志</span> events { worker_connections <span>1024</span>;<span>#单个后台work process进程最大并发链接数</span> } <span>#设定http服务器</span> http{ <span>#设定mime类型,类型由mime.type文件定义</span> include /etc/nginx/mime.types; default_type <span>application</span>/octet-stream; <span>#设定日志格式</span> access_log /var/<span>log</span>/nginx/access.<span>log</span>; sendfile <span><span>on</span></span>; <span>#连接超时时间</span><span>#keepalive_timeout 0;</span> keepalive_timeout <span>65</span>; tcp_nodelay <span><span>on</span></span>; <span>#集群中的所有后台服务器的配置信息,用于负载均衡</span> upstream local_tomcat{ server <span>192.168</span><span>.0</span><span>.111</span>:<span>80</span>; server <span>192.168</span><span>.0</span><span>.109</span>:<span>8080</span>; } server{ listen <span>8090</span>; <span>#当前代理服务器监听端口</span> server_name localhost:<span>80</span>; <span>#监听后要转到地址</span><span>#charset koi8-r;</span><span>#access_log logs/host.access.log main;</span> location / { <span>#location表示匹配路径,/表示所有请求</span> root html; <span>#静态文件存放的路径</span> index index.html index.htm; <span>#没有主页时,此为主页,可多个</span> } <span>#error_page 404 /404.html;</span><span># redirect server error pages to the static page/50x.html</span> error_page <span>500</span><span>502</span><span>503</span><span>504</span> /<span>50</span>x.html; location = /<span>50</span>x.html { root html; } } } </code>
Zusammenfassung häufiger Probleme:
1. Nginx Tomcat beeinflusst den Anforderungswert
request.getScheme() //immer http, nicht tatsächlich http oder https
request.isSecure() //immer falsch (weil immer http)
request.getRemoteAddr() //Immer die von Nginx angeforderte IP, nicht die IP des Benutzers
request.getRequestURL() //Immer die von Nginx angeforderte URL und nicht die tatsächlich vom Benutzer angeforderte URL
request.getServerName //Immer die von Nginx angeforderte IP
request.getServerPort //Immer der von Nginx angeforderte Port
Response.sendRedirect(relative URL) //Immer auf http umleiten (da es sich um eine http-Anfrage handelt)
Lösung:
Ändern Sie die Nginx-Konfiguration:
<code>proxy_<span>set</span>_header Host <span>$host</span>; <span>#解决getRequestURL、getServerName、getServerPort问题</span> proxy_<span>set</span>_header X-Real-IP <span>$remote_addr</span>;<span>#把真实的ip发送给转发的web服务器</span> proxy_<span>set</span>_header X-Forwarded-For <span>$proxy_add_x_forwarded_for</span>;<span>#解决request.getScheme()只能返回http而不是https问题</span></code>
Konfigurieren Sie das Engine-Modul von Tomcats server.xml und konfigurieren Sie einen Wert
<code><span>< <span>Valve</span><span>className</span>=<span>"org.apache.catalina.valves.RemoteIpValve"</span><span>remoteIpHeader</span>=<span>"X-Forwarded-For"</span><span>protocolHeader</span>=<span>"X-Forwarded-Proto"</span><span>protocolHeaderHttpsValue</span>=<span>"https"</span> /></span></code>
Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers, dürfen nicht ohne Genehmigung des Bloggers reproduziert werden.
Oben wurde eine Zusammenfassung der Nginx-Konfiguration vorgestellt, die verschiedene Aspekte enthält. Ich hoffe, dass sie für Freunde, die sich für PHP-Tutorials interessieren, hilfreich sein wird.