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为本机地址。
第二步,常规分布式部署,Tomcat 英文项目
唯一不同,广播地址本机地址:192.168.1.79
三,Nginx 配置反向代理,实现别名跳转。
根据规则:location /en/,反向代理:proxy_pass http://mytomcatsen/
相对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; } 其它略............................
相关文章推荐
- Nginx反向代理Tomcat实现现负载均衡(高可用)以及利用redis+Session同步会话共享配置详解
- nginx反向代理tomcat会出现session失效问题
- NGINX如何反向代理Tomcat并且实现Session保持
- NGINX如何反向代理Tomcat并且实现Session保持
- 用Nginx反向代理多个Tomcat实现负载和session共享
- nginx反向代理tomcat,由于客户端输入的端口不一致造成网页basehref错误的问题及解决办法
- nginx+tomcat+redis集群实现负载均衡和session同步的步骤和问题处理方法
- nginx反向代理tomcat时遇到一个问题
- 关于nginx+tomcat搭建反向代理时路径和端口问题
- 解决采用nginx反向代理tomcat时JSP动态页面不刷新问题
- 关于nginx反向代理后session问题
- Apache 如何反向代理tomcat并且实现Session保持
- 使用Apache通过JK实现多Tomcat负载均衡集群时,Apache不能将请求分发给Tomcat处理(即Apache反向代理不成功)的问题
- 解决nginx使用proxy_pass反向代理时,session丢失的问题
- Nginx反向代理到后端的tomcat上实现动静分离
- nginx反向代理tomcat的ssl(https)实现
- nginx反向代理tomcat、实现动静分离/配置文件
- nginx反向代理tomcat集群实现动静分离
- linux环境下通过nginx实现tomcat集群实现Session会话问题
- nginx或httpd实现反向代理tomcat并实现会话保持(二)