为了实现nginx的反向代理以及负载均衡功能,我们需要用到HttpProxyModule和HttpUpstreamModule模块。其中,HttpProxyModule模块的作用是将用户的数据请求转发至其他服务器,HttpUpstreamModule模块的作用是提供简单的负载均衡技术(轮询、最少连接、客户端IP)。这两个模块为nginx默认的自动编译模块。
当代理单台主机时,nginx配置文件为:
server {
listen 80;
server_name aaa.com;
location / {
proxy_pass http://10.10.10.128/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# access_log /home/logs/aaa_access.log combined;
}
如果后端的机器有多台(负载均衡)
Nginx配置文件写成
upstream bbb
{
server 192:168.182.129;
server 192:168.182.131;
}
server {
listen 80;
server_name bbb.com;
location / {
proxy_pass http://bbb/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# access_log /home/logs/bb_access.log combined;
}
代理一个服务器上所有域名
首先在vhosts目录下需要建立两个文件,一个是servername 列表文件,一个是虚拟主机配置文件
两个文件内容分别为
(1) servername
server_name aaa.com 111.com //就这么简单一行,当然这个server_name 还可以继续添加的
(2) 虚拟主机配置文件
server {
listen 80;
include vhosts/servername; // 这里的文件就是上边那个servername列表文件
location / {
proxy_pass http://10.10.10.128/; //这里就是需要做代理的服务器ip地址了
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log /dev/null;
}
原文地址:http://881955.blog.51cto.com/871955/1659623