Nginx和Apache

前提

在通常使用Apache作为WEB服务器的环境中,
将Nginx作为代理服务器放置在前端,
将Apache作为后端,
以加快处理速度。

我的环境是CentOS 6.4,Apache 2.2.15和Nginx 1.0.15。

假设Apache已经安装好了。

mod_rpaf is a vital module used in Apache web server to replace the values of REMOTE_ADDR variable with the values of X-Forwarded-For header in order to obtain the original client IP address.

安装Apache模块mod_rpaf。关于mod_rpaf,这里可能会有参考:
http://heartbeats.jp/hbblog/2012/03/mod-rpaf.html

ーーーーーーーーーー
sudo yum install -y httpd-devel

切换到 /usr/local/src/ 目录下
使用 sudo 命令下载 http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
使用 sudo 命令解压 mod_rpaf-0.6.tar.gz 文件
切换到 mod_rpaf-0.6 目录下

请编辑Makefile的第四行附近。
#APXS2=$(shell which apxs2) ←将其注释掉
APXS2=/usr/sbin/apxs ←添加

sudo make rpaf-2.0
sudo make install-2.0

用中文本地化地改写为:
sudo make rpaf-2.0
sudo make install-2.0

请将/usr/lib64/httpd/modules/mod_rpaf-2.0.so的权限改为755。

Nginx就可以。

安装Nginx,并进行代理服务器的配置。

使用 sudo 命令安装 nginx,命令为 yum install -y nginx。

查询版本确认
yum列表已安装 | grep nginx
nginx.x86_64 1.0.15-5.el6 @epel

创建用于代理的conf文件。
使用sudo vi命令编辑/etc/nginx/conf.d/proxy.conf文件。
在文件中添加以下内容:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

进入/etc/nginx/目录
sudo创建sites-available文件夹
sudo创建sites-enabled文件夹

在nginx.conf的http部分中添加以下一行:
包含/ etc / nginx / sites-enabled / *;

创建/etc/nginx/sites-available/ {适当的域名} 并设置虚拟主机,如下所示:
server {
listen 80;
server_name .{域名};
#在域名前面加上点是为了匹配所有子域名。

以下是对给定内容的中文释义:

// 后端服务器的端口设置为8000
location / {
代理转发 http://localhost:8000;
代理重定向默认;
中断;
}
}

创建符号链接
cd /etc/nginx/sites-enabled/
sudo ln -s ../sites-available/{适当的域名或名称}

阿帕奇

进行端口更改和加载mod_rpaf的配置设置。

请将端口号改为8000,以下为httpd.conf文件的设置部分:
首先,请将Listen 80和NameVirtualHost *:80等处的端口号改为8000。

然后,在VirtualHost声明的前面写下以下内容。

反向代理
加载模块 rpaf_module /usr/lib64/httpd/modules/mod_rpaf-2.0.so
启用RPAF
设置RPAF主机名
RPAF代理IP地址 127.0.0.1 10.0.0.1
RPAF头部 X-Forwarded-For

请重新启动Apache服务器,如果无法通过常规URL访问,请确保可以通过domain:8000访问。

最后

如果成功启动Nginx并能够访问指定的域名,那就可以了。

由于可以通过全局的域名:8000访问,因此需要在Apache的httpd.conf中进行更改,只接受来自Nginx(本地主机)的请求。

这就完成了!