一、Nginx安装

下载nginx源安装包

http://nginx.org/en/linux_packages.html

找到对应Linux版本的连接,这里选CentOS 6,右击复制链接地址http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

Nginx反向代理Tomcat的配置方法_最新版

linux下下载nginx源的rpm包并安装

wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm 

 

通过nginx源安装nginx最新版

yum -y install nginx

 

安装成功,启动nginx

Nginx反向代理Tomcat的配置方法_链接地址_02

用浏览器访问nginx服务器的80端口,显示下图说明Nginx已经正常启动

Nginx反向代理Tomcat的配置方法_最新版_03

 

 

二、Tomcat安装

Tomcat官网(http://tomcat.apache.org/)下载Tomcat8

wget http://apache.fayea.com/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz

 

解压缩tomcat

tar xzf apache-tomcat-8.0.23.tar.gz

 

tomcat改名复制两份,分别叫tomcat1,tomcat2

mv apache-tomcat-8.0.23 tomcat1

cp -ar tomcat1 tomcat2


这里是把两个Tomcat Web服务配在了同一台服务器上,所以下边这些端口要修改,两个Tomcat的端口配置不能重复。

 

进入tomcat2/conf,编辑server.xml

把默认的8005改成8006

Nginx反向代理Tomcat的配置方法_最新版_04

把默认的8080改成8081

Nginx反向代理Tomcat的配置方法_链接地址_05

把默认的8009改成8010

Nginx反向代理Tomcat的配置方法_链接地址_06


tomcat1

tomcat2

shutdown

8005

8006

http

8080

8081

ajp

8009

8010

 

 

tomcat1/webapps/ROOT下创建test.jsp,内容如下

<html>

<body>

<h1>TOMCAT_1 JSP Test Page</h1>

<%=new java.util.Date()%>

</body>

</html>

tomcat2/webapps/ROOT下创建test.jsp,内容如下

<html>

    <body>

    <h1>TOMCAT_2 JSP Test Page</h1>

    <%=new java.util.Date()%>

    </body>

    </html>

 

 

 

启动tomcat1tomcat2

tomcat1/bin, 运行./startup.sh

tomcat2/bin, 运行./startup.sh

 

访问服务器的:8080/test.jsp,打开测试页

Nginx反向代理Tomcat的配置方法_链接地址_07



访问服务器的:8081/test.jsp,打开测试页

Nginx反向代理Tomcat的配置方法_链接地址_08

 

 

三、Nginx配置

完整的nginx.conf配置,蓝色代表修改或新增内容

user  nginx;

worker_processes  auto;

worker_rlimit_nofile        100000;

 

error_log  /var/log/nginx/error.log warn;

pid        /var/run/nginx.pid;

 

 

events {

    use epoll;

    multi_accept on;

    worker_connections  10240;

}

 

 

http {

    include       /etc/nginx/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  /var/log/nginx/access.log  main;

 

    sendfile        on;

    #tcp_nopush     on;

 

    keepalive_timeout  65;

 

    #gzip  on;

 

    upstream login_server{

     server 115.159.76.128:8080;

     server 115.159.76.128:8081;

    }

 

    server{

        listen 80;

        server_name mxyx.login;

        index index.jsp;

        root /home/www;

 

        location /

        {

            proxy_set_header HOST $host;

            proxy_pass  http://login_server;

            proxy_set_header    X-Real-IP       $remote_addr;

        }

    }

 

    #include /etc/nginx/conf.d/*.conf;

}


修改好后,重启Nginx即可。

upstream的server后边还可以有后缀参数:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。