upstream配置:
upstream 服务名 {
server ip:port;
server ip:port;
# 健康检查:每个3秒钟对后端发起一次检测,
# 如果后端服务在1s内无响应,连续5次无响应,则将该机器踢出可用服务器列表,
# 如果后期连续检测两次该服务器正确响应,则重新将该服务器调度至可用服务器列表。
check interval=3000 rise=2 fail=5 timeout=1000 type=tcp;
}
vhost配置:
server {
# 既支持ipv4连接,也支持ipv6连接
listen 27143;
listen [::]:27143 ipv6only=on;
server_name 配置实际域名;
if($request_method !~ ^(GET|POST|HEAD)){
return 444;
}
# 设置日期变量
if($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})"){
set $year $1;
set $month $2;
set $day $3;
}
location / {
# 指定请求根目录 为html
root html;
# 指定默认索引文件
index index.html;
# 阻止访问swagger-ui.html
if($request_uri ~ * ^.*swagger-ui.html.*$){
return 404;
}
if($http_centermark = HHAA){
# 表示客户端请求头中的 Centermark 字段为HHAA时,请求代理到wshhaa
proxy_pass http://wshhaa;
access_log /data/ucp/myPro/logs/test1/test1_ha-access-$year-$month-$day.log main;
}
# 设置通用代理
proxy_pass http://wsha;
# 设置代理请求的请求头。将HOST请求头设置为restapi...
proxy_set_header Host restapi.xx.hua.xx.glb.xx;
# 透传客户端的真实IP,加入到请求的header中,后端如果需要,
# 须引用request的header信息中的X-Forwarded-For参数得到真实IP。
proxy_set_header X-Forwarded-For $remote_addr;
# 记录通用的访问日志
access_log /data/ucp/myPro/logs/test1/test1-access-$year-$month-$day.log main;
# 设置http协议版本
proxy_http_version 1.1;
# 使用默认重定向规则处理代理响应中的重定向。避免客户端直接访问服务端(如果服务端返回重定向地址的话)
proxy_redirect default;
# 与后端服务器建立连接的超时时间为 10 秒
proxy_connect_timeout 10s;
# 从后端服务器读取响应的超时时间为 10 秒
proxy_read_timeout 10s;
# 向后端服务器发送请求的超时时间为 10 秒
proxy_send_timeout 10s;
}
# 当客户端请求返回 404(文件未找到)、502(错误网关)、503(服务不可用)
# 或 504(网关超时)状态码时,将客户端重定向到 /50x.html 页面
error_page 404 502 503 504 /50x.html;
location = /50x.html {
root html;
access_log /home/ucp/myPro/logs/test1/error-test1-$year-$month-$day.log;
}
}