概述:
在 Web 服务器中,动态请求是指该请求需要服务器端的程序处理。例如,当用户请求一个PHP脚本文件时,就会调用PHP 处理,并返回该脚本的处理结果。而静态请求不需要程序处理,直接读取文件并返回即可,如HTML、css 、JavaScript 、图片等文件。针对这两种请求各自的特点,可以由 Nginx 提供对外访问,静态请求直接由 Nginx 处理,动态请求转交给 Apache 处理,这样就实现了动静分离。(实质上整合PHP、Apache、Tomcat其实都是做反向代理。)
配置:
更改Apache的监听端口,一般80改81(Http),433改8433(Https)
配置Nginx转发:
server {
listen 80;
server_name test.com www.test.com;
root /var/www/www.test.com;
index index.html index.htm index.php;
Location ~\.php?{
proxy_pass http://127.0.0.1:81;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
传递客户端真实IP:
Apache 的模块 mod_remoteip 用于检测 REMOTE_ADDR 是否为代理服务器的 IP 地址,如果是则从自定义的 HTTP 消息头中读取客户端 IP 。 在httpd. conf 中搜索 mod_remoteip ,将模块启用,并指定消息头的名称和代理服务器的 IP 地址 。
LoadModule remoteip_module modules/mod_remoteip.so
RemoteIPHeader X-Client- IP
RemoteIPinternalProxy 127 .0. 0.1