conf 파일 아래 nginx.conf 파일인 nginx 서버 구성을 수정합니다.
<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>
일반적인 문제 요약:
1. nginx tomcat이 요청 값에 영향을 미칩니다
request.getScheme() //항상 http, 실제 http 또는 https가 아님
request.isSecure() //항상 거짓(항상 http이기 때문에)
request.getRemoteAddr() //항상 사용자의 IP가 아닌 nginx에서 요청한 IP
request.getRequestURL() //항상 사용자가 실제로 요청한 URL이 아닌 nginx가 요청한 URL
request.getServerName //항상 nginx에서 요청한 IP
request.getServerPort //항상 nginx가 요청한 포트
response.sendRedirect(relative url) //항상 http로 리디렉션합니다(http 요청으로 간주되므로)
해결책:
nginx 구성 수정:
<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>
Tomcat의 server.xml 엔진 모듈 구성 및 값 구성
<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>
저작권 설명: 이 문서는 원본 문서입니다. 블로거의 글은 블로거의 허락 없이 복제할 수 없습니다.
이상에서는 다양한 측면을 포함하여 Nginx 구성에 대한 요약을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.