Windows/Ubuntu下使用nignx实现负载均衡

Posted snailZED

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows/Ubuntu下使用nignx实现负载均衡相关的知识,希望对你有一定的参考价值。

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 指令中作为一个单独的实体,它们可以是监听不同端口的服务器,并且

也可以是同时监听 TCPUnix 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         }

 

以上是关于Windows/Ubuntu下使用nignx实现负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

nignx的TCP和UDP调度(nginx反向代理)

原创Nignx+Keepalived实现前端高可用

nignx

nignx部署Vue单页面刷新路由404问题解决

nignx 配置服务集群

nignx 负载均衡的几种算法介绍