首页 > 代码库 > nginx 负载均衡 反向代理
nginx 负载均衡 反向代理
A(主)、B、C服务器、A为主服务器
原理:
域名解析到A服务器,A服务器分配给到B、C服务器上
核心配置(该配置方法主服务器不提供服务):
upstream nginx.cn {
#ip_hash;
#server 192.168.1.228:80 weight=5;
#server 192.168.1.224:80 weight=5;
server 192.168.1.228:80;
server 192.168.1.240:80;
}
server{
listen 80;
server_name nginx.cn;
location /{
proxy_pass http://nginx.cn;
if ($request_uri ~* ".*\.(js|css|gif|jpg|jpeg|png|bmp|swf)$"){
proxy_pass http://nginx.cn;
}
}
location /status{
auth_basic "NginxStatus";
stub_status on;
access_log on;
}
}
如果把主服务器的ip放到upstream中,服务器会给自己进行分配负载任务,无限自己调动自己,会造成死循环.
因为:80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理访问请求,得用一个新的。于是我们把主服务器的nginx.conf加入以下一段代码:
server{
listen 8080;
server_name a.com;
index index.html;
root /data0/htdocs/www;
}
全部配置(该配置方法主服务器不提供服务):
user www www;
worker_processes 10;
pid nginx.pid;
events{
use epoll;
worker_connections 51200;
}
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 120;
tcp_nodelay on;
upstream nginx.cn {
#ip_hash;
#server 192.168.1.228:80 weight=5;
#server 192.168.1.224:80 weight=5;
server 192.168.1.228:80;
server 192.168.1.240:80;
}
server{
listen 80;
server_name nginx.cn;
location /{
proxy_pass http://nginx.cn;
if ($request_uri ~* ".*\.(js|css|gif|jpg|jpeg|png|bmp|swf)$"){
proxy_pass http://nginx.cn;
}
}
location /status{
auth_basic "NginxStatus";
stub_status on;
access_log on;
}
}
}
其他webserver 只需要配置相应的域名即可
nginx 负载均衡 反向代理