7、Nginx+Apache环境配置——动静分离
来源:JavaCodingfarmer     阅读:673
微分网络
发布于 2018-06-19 22:32
查看主页

在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安装配置

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 软件环境
相关推荐
阿里P7实例讲解Java异常解决
教你快速在Centos安装mysql
CentOS清理历史命令
作为Java工程师不懂Zookeeper?没关系,一篇文章让你搞懂
说说 Python 的数值列表
首页
搜索
订单
购物车
我的