您的位置:首页 > 运维架构 > 反向代理

Nginx 反向代理实现 分布式 国际化 tomcat session 问题

2016-12-22 18:30 861 查看
本文没用i18国际化方案,直接一个语言做一套WEB前端。

相对i18,虽工作量大,但样式风格可以本土化,推广规则可以独立等等,需求因素。就此略过。

部署两台服务器:中文项目192.168.1.85、英文项目192.168.1.79

Nginx:192.168.1.88
http://192.168.1.88/          指向:192.168.1.85
http://192.168.1.88/cn/     指向:192.168.1.85
http://192.168.1.88/en/    指向:192.168.1.79

因域名是同一个,Session保持一致。

第一步,常规分布式部署,Tomcat 中文项目

笔者测试使用Session复制,生产环境考虑使用缓存系统memcached、redis。

广播session,session复制功能,192.168.1.85为本机地址。

<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.1.85"
port="5000"
selectorTimeout="100"
maxThreads="6"/>
</Channel>


第二步,常规分布式部署,Tomcat 英文项目

唯一不同,广播地址本机地址:192.168.1.79

<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.1.79"
port="5000"
selectorTimeout="100"
maxThreads="6"/>
</Channel>


三,Nginx 配置反向代理,实现别名跳转。

根据规则:location /en/,反向代理:proxy_pass http://mytomcatsen/
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"';

#access_log  logs/access.log  main;

#设定请求缓冲
client_header_buffer_size 3k;
large_client_header_buffers 8 8k;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#客户端上传文件大小控制
client_max_body_size 100m;

#gzip  on;

upstream mytomcats {
server   192.168.1.85:8028;
}

upstream mytomcatsen {
server   192.168.1.79:8028;
}

server {
listen       80;
server_name  localhost;

charset utf-8;

#access_log  logs/host.access.log  main;

location /cn/ {
root   html;
index  index.html index.htm;
proxy_pass http://mytomcats/; client_max_body_size  100m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_body_buffer_size 128k;
proxy_connect_timeout 5;
proxy_send_timeout 5;
proxy_read_timeout 5;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

}

location /en/ {
root   html;
index  index.html index.htm;
proxy_pass http://mytomcatsen/; client_max_body_size  100m;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_body_buffer_size 128k;
proxy_connect_timeout 5;
proxy_send_timeout 5;
proxy_read_timeout 5;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

}

location / {
root   html;
index  index.html index.htm;
proxy_pass        http://mytomcats; client_max_body_size  100m;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_body_buffer_size 128k;
proxy_connect_timeout 5;
proxy_send_timeout 5;
proxy_read_timeout 5;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

}

其它略............................
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: