nginx常用命令
cd /usr/local/nginx/sbin./nginx -t 检测配置文件
./nginx -s reload 重新加载配置文件
停止nginx
./nginx -s stop
查看nginx版本
./nginx -v
nginx 负载均衡5种配置方式
1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
配置ngnix负载均衡
轮询以及权重
以三台机器为例,首先配置好和启动server2和server3
然后,将server2和server3作为两台负载服务器
在server1中设置如下
worker_processes 1;
events {
worker_connections 1024;
}
http {
keepalive_timeout 65;
upstream server1 {
server server2:80 weight=5;
server server3:80 weight=10;
}
server {
listen server1:80;
location / {
proxy_pass http://server1;
}
}
}
然后访问server1,依次刷新,由于轮询算法和权重的有效性,
server3出现两次,server2出现一次
配置ip_hash负载均衡
ip_hash,每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题。(一般电子商务网站用的比较多)upstream webservers {
ip_hash;
server 192.168.18.201 weight=1 max_fails=2 fail_timeout=2;
server 192.168.18.202 weight=1 max_fails=2 fail_timeout=2;
#server 127.0.0.1:8080 backup;
}
注,当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能有backup。
参考资料:
http://debugo.com/nginx-web-upstream/ 写的很好,简单易懂
http://freeloda.blog.51cto.com/2033581/1288553 有缓存和读写分离方面的内容
http://zyan.cc/post/306/ 张宴的配置,值得多研究