服务器集群是我们那种大型百万级IP运维人员会操作的,今天小的也来给大家过一把nginx负载均衡配置集群方法,网上找了几篇文章,发现也不难呀。
nginx负载均衡一,
1. 安装时不要安装在源代码同一个目录下,make时会报错的。
代码如下 | 复制代码 |
./configure --prefix=/opt/nginx make && make install |
2. 修改配置文件/opt/nginx/conf/nginx.conf
在server元素前增加:(假设两个tomcat的端口都是8080)
代码如下 | 复制代码 |
upstream www.111cn.net { server 192.168.1.13:8080; server 192.168.1.14:8080; } |
将server元素下的server_name改为实际域名,例如:
代码如下 | 复制代码 |
server_name www.111cn.net |
在location元素下面增加一行:
代码如下 | 复制代码 |
proxy_pass www.111cn.net |
3. 启动停止命令
启动:/opt/nginx/sbin/nginx
快速停止:/opt/nginx/sbin/nginx -s stop
完整有序停止:/opt/nginx/sbin/nginx -s quit
重新加载:/opt/nginx/sbin/nginx -s reload
nginx负载均衡二,
假设我们有3台服务器,IP地址分别为:
192.168.0.1 / 192.168.0.2 / 192.168.0.3
我们将192.168.0.1作为前端主服务器,192.168.0.2和192.168.0.3作为负载均衡的后端服务器。
下面是192.168.0.1主服务器上Nginx的配置方法:
代码如下 | 复制代码 |
worker_processes 1; events { worker_connections 1024; } http { upstream serverlist { server 192.168.0.2:8000 weight=3 max_fails=3 fail_timeout=20s; server 192.168.0.3:8000 weight=7 max_fails=3 fail_timeout=20s; } server { listen 80; server_name www.111cn.net; location / { proxy_pass http://serverlist; proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } |
配置说明:
upstream serverlist{}可以理解为一个服务器池,通过proxy_pass http://serverlist命令,可将访问www.111cn.net的请求分配给位于池内的服务器192.168.0.2和192.168.0.3。
weight=3和weight=7为服务器的权重,权重越高,被分配到的请求就越多。
max_fails=3和fail_timeout=20s的含义是,当请求失败次数达到3次时,这个服务器将被暂时下线20秒。
技巧:主服务器可负责静态内容,将所有php的请求分配到后端服务器处理。