`
bobotc
  • 浏览: 18564 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ngnix +tomcat 配置动态二级域名+负载均衡+集群

阅读更多
l         前提条件:

       实现动态二级域名必须让域名服务商开通泛解析

l         Ngnix的配置:

#启动进程数(和CPU个数一样)

worker_processes  1;

#工作模式及连接数上限

events {

    worker_connections  1024;

}

#设定http服务器,利用它的反向代理功能提供负载均衡支持

http {

       #设定mime类型

       include       mime.types;

       default_type  application/octet-stream;

       #设定请求缓冲

       client_header_buffer_size    1k;

       large_client_header_buffers  4 4k;

       #开启gzip模块

       gzip on;

       gzip_min_length  1100;

       gzip_buffers    4 8k;

       gzip_types      text/plain;

       output_buffers  1 32k;

       postpone_output  1460;

       client_header_timeout  3m;

       client_body_timeout  3m;

       send_timeout 3m;

       sendfile  on;

       tcp_nopush on;

       tcp_nodelay  on;

       keepalive_timeout  65;

      

       upstream  sv1

     {                        

           server   127.0.0.1:8080; #第一台tomcat

              server   127.0.0.1:8090; #第二台tomcat

              ip_hash; #这个配置很重要,保证通一个用户访问的是同一个tomcat,即session同步

     }











       upstream  sv2

     {                        

         server   127.0.0.1:8080; #第一台tomcat

              server   127.0.0.1:8090; #第一台tomcat

              ip_hash;

     }





       #第一个服务应用

       server {

        listen     80;

              server_name  www.bobo.com;

              #root D:\Tomcat\www;

        location / {

           proxy_pass http://sv1;

           proxy_set_header Host $host;

           proxy_set_header X-Real-IP $remote_addr;

           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        

        }

        error_page  404 500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

       }



       #第二个服务应用

       server {

        listen     80;

              server_name  mv.bobo.com;

              #root D:\Tomcat\www2;

        location / {

           proxy_pass http://sv2;

           proxy_set_header Host $host;

           proxy_set_header X-Real-IP $remote_addr;

           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

       error_page  404 500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

       }



      

}

l         Tomcat的配置:

这个是你主域名对应的站点

<Host name="www.bobo.com"  appBase="D:\Tomcat\www"

            unpackWARs="true" autoDeploy="true"

            xmlValidation="false" xmlNamespaceAware="false">

</Host>

这个是你的二级站点对应的站点(单独的应用)

<Host name="mv.bobo.com"  appBase="D:\Tomcat\www2"

            unpackWARs="true" autoDeploy="true"

            xmlValidation="false" xmlNamespaceAware="false">

</Host>

两个Tomcat配置是一样的。

l         在主应用中实现动态二级域名的效果

大概思路:

request.getServerName();

您可以获取到当前请求的host,如:bobotc.bobo.com;这样你就可以截取到bobotc了,假设要实现类似新浪博客那样的永久二级域名,其实bobotc就是那个用户名了,获取到后内部重定向到一个用户主页页面,其实地址栏里没有看到变化,看着好像是二级域名,其实是内部使用的障眼法。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics