7、Nginx+Apache环境配置——动静分离

作者 : 开心源码 本文共1087个字,预计阅读时间需要3分钟 发布时间: 2022-05-11 共89人阅读

在Web服务器中,动态请求是指该请求需要服务器端的程序解决,而静态请求不需要程序解决,直接读取文件并返回就可,例如html,css,js,images等文件,针对这两种请求各自的特点,能由Nginx提供对外访问,静态请求直接由Nginx解决,动态请求转交给Apache解决,这样就实现了动静分离。

1、更改Apache监听端口

当Nginx作为前台Web服务器后就会占使用80端口,为了让Apache正常运行,需要改变Apache监听端口,下面将端口修改为81端口:

httpd.conf配置文件:

7、Nginx+Apache环境配置——动静分离

httpd-vhosts.conf配置文件:

7、Nginx+Apache环境配置——动静分离

2、更改Nginx对动态请求的解决

7、Nginx+Apache环境配置——动静分离

proxy_pass:使用于代理商用户端浏览器请求Apache服务器;

proxy_set_header:使用于发送Host消息头;

Nginx在代理商请求时可以够自动传递来自用户端浏览器的请求消息头,但是无法传递Host消息头,因而需要设置proxy_set_header指令;

Nginx的$host变量保存了当前请求的主机名,即虚拟主机:www.test.org,放在Host消息头中使用于告知Apache当前请求的虚拟主机。

7、Nginx+Apache环境配置——动静分离

3、传递用户端IP地址

在Web服务器中,REMOTE_ADDR表示用户端的IP地址,若要获取真实的用户端IP地址,需要Nginx将用户端IP使用户另一种方式传递给Apache,这里借助HTTP请求消息头,我们可定义一个专门使用于传递用户端IP的消息头X-Client-IP,当Nginx获取到用户端IP后,将IP放入消息头发送给Apache,而后在Apache中替换REMOTE_ADDR就可。

在原有虚拟主机上配置的基础上添加X-Client-IP消息头:

7、Nginx+Apache环境配置——动静分离

Nginx提供的$rremote_addr变量保存了用户端IP地址,而后将其增加到X-Client-IP中,假如Nginx收到的请求中已经存在X-Client-IP消息头,则会被替换,从而防止伪造用户端IP的情况发生。

Apache板块mod_remoteip使用于检测REMOTE_ADDR能否为代理商服务器的IP,假如是则从自己设置的HTTP消息头中读取IP,在httpd.conf中启动mod_remoteip.so板块,并指定消息头的名称和代理商服务器的IP地址。

7、Nginx+Apache环境配置——动静分离

上述配置后,当Apache的mod_remoteip板块检测到REMOTE_ADDR为127.0.0.1时,就会使用X-Client-IP的值替换,而后清理X-Client-IP消息头。

上篇:6、Nginx+Apache环境配置–Apache安装配置

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 7、Nginx+Apache环境配置——动静分离

发表回复