首页 > 代码库 > nginx负载均衡(一)

nginx负载均衡(一)

背景:

最近公司分配一个项目,做一个直播APP的后台,像这种随时都有用户在线的情况,后台一定不能down掉,而且只做一台服务器的话压力肯定很大,所以考虑用nginx做负载均衡

环境:

三台linux服务器,一台反向代理服务器,两台负载均衡服务器

反向代理服务器   10.10.10.30    80

负载均衡服务器   10.10.10.40    80

                            10.10.10.50    80

 

首先编译安装nginx,安装编译环境:

yum install gcc-c++

yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

yum -y install openssl openssl—devel

 

安装编译环境可能遇到的问题:

要是这样编译的时候还是找不到openssl库,就需要下载openssl源文件,解压后,将路径指定到解压的路径

./configure --prefix=/usr/local/nginx --with-http_ssl_module--with-openssl=/usr/local/src/openssl-xxxx --with-pcre--with-http_stub_status_module

 

接下来编译安装nginx

tar zxvf nginx-1.8.0.tar.gz

cd nginx-1.8.0

./configure

make

make install

 

配置完成后测试是否正常

/usr/local/nginx/sbin/nginx -t 

接着启动nginx

/usr/local/nginx/sbin/nginx

若修改后配置文件或者将配置文件覆盖修改的 ,需要执行:

/usr/local/nginx/sbin/nginx -s reload

 

nginx主目录:/usr/local/nginx

nginx主页目录:/usr/local/nginx/html

nginx主配置文件目录:/usr/local/nginx/conf

 

启动成功之后,浏览器输入http://10.10.10.30/   可进入测试页面

 

负载均衡服务器配置:

 1 upstream mynginx {
 2        
 3          server 10.10.10.40:80 weight=10;
 4          server 10.10.10.50:80 weight=10;
 5      
 6     }
 7 
 8     server {
 9         listen       80;
10         server_name  www.asen0713.com;
11 
12         #charset koi8-r;
13 
14         #access_log  logs/host.access.log  main;
15 
16         location / {
17             root   html;
18             proxy_pass http://mynginx;
19         }
20 
21         #error_page  404              /404.html;
22 
23         # redirect server error pages to the static page /50x.html
24         #
25         error_page   500 502 503 504  /50x.html;
26         location = /50x.html {
27             root   html;
28         }
29 
30         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
31         #
32         #location ~ \.php$ {
33         #    proxy_pass   http://127.0.0.1;
34         #}
35 
36         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
37         #
38         #location ~ \.php$ {
39         #    root           html;
40         #    fastcgi_pass   127.0.0.1:9000;
41         #    fastcgi_index  index.php;
42         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
43         #    include        fastcgi_params;
44         #}
45 
46         # deny access to .htaccess files, if Apache‘s document root
47         # concurs with nginx‘s one
48         #
49         #location ~ /\.ht {
50         #    deny  all;
51         #}
52     }

配置好了之后重新加载配置文件:/usr/local/nginx/sbin/nginx -s reload,或者重启nginx负载均衡服务器,输入www.asen0713.com可看到负载均衡效果

注意事项:

1、修改C:\Windows\System32\drivers\etc下的hosts文件加入       10.10.10.30    www.asen0713.com    一行

2、火狐和IE需要按ctrl+F5强制刷新才能看到效果,而谷歌浏览器刚好相反

技术分享

 

 

 

技术分享

这样负载均衡就已经配置完了,如果10.10.10.40    80        10.10.10.50    80其中一台down掉,负载均衡服务器会自动分配到另外一台,服务正常访问

遗留问题:

1、如果负载均衡服务器down掉,将无法访问

2、配置负载均衡服务器,session也会随之分配到对应服务器,这样session将不能共享,获取资源出现问题

3、文件上传下载也会被分配到不同服务器

nginx负载均衡(一)