1. 程式人生 > >nginx實現反向代理+健康檢測

nginx實現反向代理+健康檢測

說明
tengine官方說明文件

nginx 對於後端RS的檢查機制不完善
所有用Tengine進行反向代理12

一、反向代理

 

1.定義後端real-server(在http段)


upstream static_server {
server 192.168.17.175:80 weight=5;
server 192.168.17.176:80 weight=3;
}
upstream basic_server {
server 192.168.17.175:80 weight=2;
server 192.168.17.176:80 weight=5;
}

1234567891011

2.location 匹配到自定義內容 代理到對應的real-server(server段)


server {
listen 80 default_server;
server_name _;


location ~ ^/images {
index index.php index.html;
proxy_pass http://static_server;
}
location ~* .(jpg|png|jpeg|gif) {
proxy_pass http://static_server;
}
#匹配到/youxi 則全部代理到 http://basic_server/index.html;
location ~ /youxi {
rewrite ^(.*)$ /index.html break;
proxy_pass http://basic_server/index.html;
}123456789101112131415161718

 

二、real-server健康檢測

 

模組
nginx_upstream_check_module-master
使用
upstream塊裡可以用多個server選項配置多個後端伺服器,同時還可配置對後端伺服器的健康狀態檢查,
可以在server後面加上
max_fails(proxy_next_upstream指定檢查策略,預設為返回超時為失敗)和
fail_timeout引數實現;
也可以用health_check選項來實現
health_check可以指定的引數較多,不過需要定義在location上下文中。
另外,可以指定代理伺服器自身作為備份server,當所有後端伺服器都宕機時,對外提供維護提示頁面。
指定負載均衡策略
主要有round_robin(加權輪詢,預設)、
hash、ip_hash、least_conn(最少連線)
least_time(最少響應時間,商業版本)
策略定義在upstream上下文即可;123456789101112131415

 

1.對real-server進行健康檢測(upstream中)

upstream basic_server {
server 192.168.17.175:80 weight=2;
server 192.168.17.176:80 weight=5;
check interval=3000 rise=2 fall=5 timeout=2000 type=http;
check_http_expect_alive http_2xx http_3xx;
}
1234567

 

2.健康檢測頁面

 

server {
location /status {
check_status;
}
}
123456
---------------------
作者:木子甘
來源:CSDN
原文:https://blog.csdn.net/tete2csdn/article/details/78508921
版權宣告:本文為博主原創文章,轉載請附上博文連結!