Windows/Ubuntu下使用nignx实现负载均衡
一、Ubuntu下实现
1、首先安装nginx服务器 sudo apt-get install nginx
2、 Cd /etc/nginx/
Sudo vim sites-avaliables/default
①、在server节点外添加:
upstream server_pool {
server 192.168.0.88:80 weight=4 max_fails=2 fail_timeout=30s;
server 192.168.0.89:80 weight=2 max_fails=2 fail_timeout=30s;
}
#HTTP 负载均衡模块。upstream 这个字段设置一群服务器,可以将这个字段放在
proxy_pass 和 fastcgi_pass 指令中作为一个单独的实体,它们可以是监听不同端口的服务器,并且
也可以是同时监听 TCP和 Unix socket 的服务器。 服务器可以指定不同的权重,默认为 1。
②、修改server节点
server {
… …
location / {
proxy_pass http://server_pool/;
#确定需要代理的 URL,端口或 socket。
proxy_redirect off;
#如果需要修改从后端服务器传来的应答头中的"Location"和"Refresh"字段,可以用这个指令
设置。
proxy_set_header X-Real-IP $remote_addr;
#这个指令允许将发送到后端服务器的请求头重新定义或者增加一些字段。 这个值可以是一个文本,变量或者它们的组合
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503
http_504 http_404;
#确定在何种情况下请求将转发到下一个服务器:
#error - 在连接到一个服务器,发送一个请求,或者读取应答时发生错误。
#timeout - 在连接到服务器,转发请求或者读取应答时发生超时。
#invalid_header - 服务器返回空的或者错误的应答。
#http_500 - 服务器返回 500 代码。
#http_502 - 服务器返回 502 代码。
#http_503 - 服务器返回 503 代码。
#http_504 - 服务器返回 504 代码。
#http_404 - 服务器返回 404 代码。
#off - 禁止转发请求到下一台服务器。
}
③、重启nginx服务器
Sudo service nginx restart
虚拟主机配置:配置http://root.com虚拟主机
①、sudo cp /ect/nginx/sites-avaliables/default /etc/nginx/sites-avliables/root
②、sudo vim etc/nginx/sites-avliables/root
③、修改server节点
/etc/nginx/nginx.conf
server {
listen 80;
root 80.com;
}
server {
listen 8080;
root 8080.com;
}
Apache配置虚拟主机:配置http://root.com虚拟主机
①、sudo cp /ect/nginx/sites-avaliable/default /etc/nginx/sites-avliable/root
②、sudo vim etc/nginx/sites-avliables/root
③、修改配置
1 <VirtualHost *:80> 2 3 ServerAdmin [email protected] 4 5 ServerName web.root.com 6 7 DocumentRoot /var/www/root 8 9 <Directory /> 10 11 Options FollowSymLinks 12 13 AllowOverride None 14 15 </Directory> 16 17 <Directory /var/www/root/> 18 19 Options Indexes FollowSymLinks MultiViews 20 21 AllowOverride None 22 23 Order allow,deny 24 25 allow from all 26 27 </Directory> 28 29 30 31 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 32 33 <Directory "/usr/lib/cgi-bin"> 34 35 AllowOverride None 36 37 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 38 39 Order allow,deny 40 41 Allow from all 42 43 </Directory> 44 45 46 47 ErrorLog ${APACHE_LOG_DIR}/error.log
④、sudo ln -s /etc/apache2/sites-avaliable/root /etc/apache2/sites-avaliable/root ;
⑤、sudo service apache2 restart
二、Windows nginx.conf
1 worker_processes 4; 2 3 upstream test.com{ 4 5 server 192.168.1.155; 6 7 server 127.0.0.1:80; 8 9 } 10 11 12 13 server { 14 15 listen 8080; 16 17 server_name localhost; 18 19 20 21 #charset koi8-r; 22 23 24 25 #access_log logs/host.access.log main; 26 27 root "E:/2016phpstudy/WWW"; 28 29 location / { 30 31 index index.html index.htm index.php l.php; 32 33 autoindex off; 34 35 #其中jq_one 对应着upstream设置的集群名称 36 37 proxy_pass http://test.com; 38 39 #设置主机头和客户端真实地址,以便服务器获取客户端真实IP 40 41 proxy_set_header Host $host; 42 43 proxy_set_header X-Real-IP $remote_addr; 44 45 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 46 47 48 49 }