nginx负载均衡及详细配置

接上篇nginx配置,然后再准备两台web服务器:

nginx服务器:192.168.0.241

web1:192.168.0.141

web2:192.168.0.142

一、两台web服务器先安装http:

[root@host1 ~]# yum -y install httpd
[root@host1 ~]# /etc/init.d/httpd start
[root@host1 ~]# echo "Hello,I'm 192.168.0.141" > /var/www/html/index.html
[root@host1 ~]# curl http://192.168.0.141
Hello,I'm 192.168.0.141
[root@host2 ~]# yum -y install httpd
[root@host1 ~]# /etc/init.d/httpd start
[root@host2 ~]# echo "Hello,I'm 192.168.0.142" > /var/www/html/index.html
[root@host2 ~]# curl http://192.168.0.142
Hello,I'm 192.168.0.142
#注意先看下服务器上是否有安装http,如httpd启动不起来,看下是否80端口在被占用

二、nginx服务器配置负载均衡:

[root@host3 conf]# cd /usr/local/nginx/conf/
[root@host3 conf]# vim nginx.conf
…………
http { #定义源服务器组
upstream team {
server 192.168.0.141;
server 192.168.0.142;
}
…………
…………
server {
#定义监听端口
listen ;
#定义访问域名
server_name www.load.com;
location / {
#调用服务器组
proxy_pass http://team;
root html;
index index.html;
}
}
…………
…………
}
:wq
[root@host3 conf]# nginx -s reload
#继续添加nginx服务器访问域名
[root@host3 conf]# vim /etc/hosts
…………
192.168.0.241 www.nginx1.com www.nginx2.com www.load.com
:wq
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.141
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.142
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.141
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.142

注意:如果访问不了看下是否防火墙限制了,8080端口如被占用可改为其他端口

三、设置权重:

#接上面的配置
[root@host3 conf]# vim nginx.conf
…………
http { upstream team {
#设置权重参数,机器的性能越好,可以设置参数越大
server 192.168.0.141 weight=;
server 192.168.0.142 weight=;
}
…………
:wq
[root@host3 conf]# nginx -s reload
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.141
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.142
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.142
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.141
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.142
[root@host3 conf]# curl http://www.load.com:8080
Hello,I'm 192.168.0.142

附:nginx优化参数(http模块)

server_tokens off;      #添加此行,不显示nginx具体版本号

include       mime.types;   #设定mime类型,类型由mime.type文件定义

sendfile        on;      #提升nginx读文件性能

tcp_nodelay     on;     #关闭tcp的缓延迟发送数据,即立即相应

keepalive_timeout  65;   #连接超时时间

gzip  on;        #开启gzip压缩

gzip_min_length 1000;   #小于1000k的不压缩,越压缩越大

gzip_comp_level 4;      #压缩级别是4(1-9个级别)

gzip_types ……           #允许压缩的类型,/usr/local/nginx/conf/mime.types有类型

client_header_buffer_size 1k;      #设定请求缓存

large_client_header_buffers 4 4k;    #最大请求缓存个数与容量

#先根据client_header_buffer分配,如果不够,再根据large值分配

#设定虚拟主机配置:

    server {
        #侦听80端口
        listen    80;
        #定义使用 www.nginx.com访问
        server_name  www.nginx.com;
        #定义服务器的默认网站根目录位置
        root html;
        #设定访问日志
        access_log  logs/nginx.access.log  main;
        #默认请求
        location / {
        #定义首页索引文件的名称
            index index.php index.html index.htm;  
        }
   # 定义错误提示页面
        error_page   500 502 503 504 /50x.html;
        location = /50x.html {
        }

  #禁止访问 .htxxx 文件

            location ~ /.ht {
            deny all;
  }
}
上一篇:Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇


下一篇:PHP代码审计笔记--变量覆盖漏洞