当前 nginx 实现了 jboss 调度,SESSION 同步功能
但最近某个项目 tomcat 集群需要临时迁移,也共同部署到当前项目环境中
user daemon; # 定义 进程用户
worker_processes 2; # CPU 使用率
worker_cpu_affinity 01 10 ; # CPU 负载
pid /var/run/nginx/nginx.pid; # PID 位置
worker_rlimit_nofile 8096; # 当前每个线程最大的文件访问限制
events {
worker_connections 8096; # 每个线程最大并发
use epoll; # linux 下优化 CPU 功能,WINDOWS 不具备
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr""$upstream_status" "$upstream_response_time"';
sendfile on;
keepalive_timeout 20;
expires -1;
upstream backend {
sticky; #实现 SESSION 同步的 NGINX 模块,需编译添加
server x.x.x.25:8080 weight=1 max_fails=2 fail_timeout=20s; #jboss 集群a
server x.x.x.29:8080 weight=1 max_fails=2 fail_timeout=20s; #jboss 集群b
...... #太多了不浪费位置了
server x.x.x.125:8080 weight=1 max_fails=2 fail_timeout=20s; #jboss 集群c
}
upstream newproject {
sticky; #实现 SESSION 同步的 NGINX 模块,需编译添加
server x.x.x.25:15004 weight=1 max_fails=2 fail_timeout=20s; #tomcat 集群a
server x.x.x.29:15004 weight=1 max_fails=2 fail_timeout=20s; #tomcat 集群b
...... #太多了不浪费位置了
server x.x.x.125:15004 weight=1 max_fails=2 fail_timeout=20s; #tomcat 集群c
}
server {
listen 80;
server_name 127.0.0.1;
access_log none;
error_log none;
location /nginx_status { #用于监控用的平台
stub_status on;
}
}
server {
listen 80;
server_name www.xxx.cn xxx.28 xxx.cn xxx.29 xxx.25; # 同时支持多个域名 IP 访问
charset utf-8;
proxy_set_header Host $host:$server_port; # 重定义 header 信息
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Referer $http_referer;
proxy_connect_timeout 30; #调度器连接信息
proxy_send_timeout 30;
proxy_read_timeout 30;
access_log /var/log/nginx/x.x.x.28.access.log main;
error_log /var/log/nginx/x.x.x.28.error.log;
proxy_next_upstream error timeout http_500 http_502 http_503 http_504; # 错误信息控制
location / {
proxy_pass http://backend/; # 主集群调度
if ( $request_uri ~ /gz/ ) { # 目标实现 http://www.xx.cn/gz 自动跳转到另外一组集群中
proxy_pass http://newproject/; # 临时的另外一个项目的临时支持
rewrite /gz/(.*) /gz/$1 break; # rewrite 重定义令该项目看上去成为主项目中的子项目
}
}
}
}