1.启动nginx
/usr/local/nginx/sbin/nginx -c /home/thinkpad/nginx-1.8.0/conf/nginx.conf #指定配置文件启动nginx
ps -ef|grep nginx #查看nginx是否启动
2.nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#mytest 需要被转发的机器
upstream test-client {
server 88.xxx.206.xxx:5005;
server 88.xxx.206.xxx:5007;
}
#mytest
server {
#charset koi8-r;
#通过下面5010这个端口。访问上面需要被转发的机器。使用localhost:5010访问 proxy_pass
#也就是说 访问localhost:5010等于访问http://test-client/webhooks/rest/webhook ,test-client 就是需要被转发的两台机器
listen 5010;
server_name localhost;
location / {
proxy_pass http://test-client/webhooks/rest/webhook;
proxy_redirect default;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
# postman 上 post访问http://localhost:5010 即可
3.nginx负载方式
3.1 默认是轮询方式,按照时间顺序依次分发请求给不同机器,如果有机器中间宕机,则自动剔除。
upstream test-client {
server 88.xxx.206.xxx:5005;
server 88.xxx.206.xxx:5007;
}
3.2 权重的方式也用的很多,给每个机器分配权重值,那么分发的请求将按照比例分发。性能好的机器就weight设置大点 来接收更多的请求。比较常用
upstream test-client {
server 88.xxx.206.xxx:5005 weight=2;
server 88.xxx.206.xxx:5007 weight=3;
}
3.3 iphash 方式。这种方式稍微不常用些,会将请求服务的ip 经过hash映射到固定的机器上。设置如下
upstream test-client {
ip_hash;
server 88.xxx.206.xxx:5005 weight=2;
server 88.xxx.206.xxx:5007 weight=3;
}
3.4 最少连接,根据每个服务器的连接数 动态分配。将请求分配到连接数量最少的服务器上。比较常用
upstream test-client {
least_conn;
server 88.xxx.206.xxx:5005 weight=2;
server 88.xxx.206.xxx:5007 weight=3;
}
3.5 fair模式,根据请求得到的响应时间来分配请求,哪台机器响应时间最迅速就优先分配。特别常用
upstream test-client {
server 88.xxx.206.xxx:5005 weight=2;
server 88.xxx.206.xxx:5007 weight=3;
fair;
}
4.宕机切换,这个很重要。就是假如有台机器挂了,需要将请求分发到可用的机器上。等宕机的机器恢复后又能重新给这台机器分发请求。怎么设置呢很简单。看下面。
upstream rasa-client {
server 88.xxx.206.xxx:5005 max_fails=3 fail_timeout=10s;
server 88.xxx.206.xxx:5007 max_fails=3 fail_timeout=10s;
}
max_fails=3 fail_timeout=10s 意思是10s内达到3次请求失败,nginx就判定这台机器已经宕机 已经挂了,就不会再给其分发请求。真实测试时,直接挂掉一台机器后,请求会分发给可用机。恢复后就会被重新分发。
注:用来直接负载自己的get,post restful接口就行。请大口食用。亲测可口!!!
来源:CSDN
作者:每天喝牛奶
链接:https://blog.csdn.net/qq_20942097/article/details/103910604