环境

tomcat-7.0.68 ubuntu 14.04 server版 nginx 1.1.19

配置nginx

在$nginx_root_path/sites-available中新建一个nginx的server配置文件,命名为your_domain.com


# 设置静态资源cache目录及相关设置
proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=first:10m inactive=24h max_size=1G;

upstream yunwei_app {
        # 需要反向代理的tomcat地址,如果nginx和tomcat在同一台机器上则可以设置localhost
        # 否则需要用IP地址代替
        server localhost:8080 weight=1;
        # 另一台tomcat服务,通过设置weight值,可以调整各个服务器的访问量,
        # 比如:下面的服务器的访问量就是前面服务器访问量的两倍
        server xxx.xxx.xxx.xxx:8080 weight=2;
}

server {
        listen   80; ## listen for ipv4; this line is default and implied
        # 设置你的域名
        server_name your-domain.com;

        # home/deployer/apache-tomcat-7.0.68/webapps/TestServer;
        root /path/to/your/web_server/root/

        location / {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                # 把对域名的所有请求反向代理到tomcat集群
                proxy_pass http://yunwei_app;
        }

        # serve静态资源
        location ~ .*\.(js|css|jpg|jpeg|png|gif)?$ {
                proxy_pass http://yunwei_app;
                proxy_cache first;
                proxy_cache_valid 200 24h; # 200状态资源缓存24小时
                proxy_cache_valid 302 10m; # 302状态资源缓存10分钟
                # 在http头部增加一个字段显示是否命令缓存
                add_header X-Cache-Status $upstream_cache_status;
        }

        error_page 500 502 503 504 /500.html;
        client_max_body_size 4G;
        keepalive_timeout 10;
}

设置完毕重启nginx

配置Tomcat

找到$tomcat_root_path/conf/server.xml

进行如下的配置

    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- 在默认的host中添加以下行,用于通过服务器IP还可以访问tomcat的默认主页 -->
        <Context path="" docBase="ROOT" />

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>

      <!-- 添加以下host 用于你自己域名可以访问到tomcat中的某个特定的Web APP -->
      <Host name="www.your-domain.com" appBase="webapps" unpackWARs="true">
        <!-- path设置为空,表示域名www.your-domain.com就可以访问到TestServer
             docBase为你的Web APP的相对路径
        -->
        <Context path="" docBase="TestServer" />
        <!-- 如果一个主机有两个或两个以上的主机名,额外的名称均可以以别名的形式进行定义 -->
        <Alias>yunwei.hzjytech.com</Alias>
      </Host>
    </Engine>

设置完毕重启tomcat,访问www.your-domain.com就可以直接访问你的Web APP了!

参考:

http://freeloda.blog.51cto.com/2033581/1300915 http://freeloda.blog.51cto.com/2033581/1299644