Nginx快捷配置Tomcat虚拟主机

作者:fbysss

QQ:溜酒酒吧酒吧吾散

blog:blog.csdn.net/fbysss

声明:本文由fbysss原创,转载请注明出处

典型场景:

Tomcat的webapps目录中,有两个应用:app1、app2,如果没有nginx,我们的访问路径为:

http://www.domainname.com:8080/app1

http://www.domainname.com:8080/app2

端口号暴露给用户很不好看也不安全。修改Tomcat配置文件的做法,也可以,但感觉麻烦一些,在这里并不推荐。让用户感觉不到Tomcat的存在,并让Tomcat服务器安全的藏在Nginx后面,是我们的目的。

我们希望用户通过以下地址来访问:

http://app1.domainname.com

http://app2.domainname.com

比如我们在配置Maven私服Nexus的时候就如此,其默认的路径是http://localhost:8081/nexus,我们希望通过nexus.domainname.com来访问。

解决办法:

首先,域名解析,这一步不用在这里说了。如果只是内部实验,将app1.domainname.com、app2.domainname.com配置在客户端hosts文件中即可。

然后,开始修改nginx.conf

如果不考虑集群,使用proxy_pass 目的地址即可转发。

于是,我们自然想到,在server节点中应该有如下配置(下面就以nexus为例,如果是多个应用,配置多个server即可):

    server {
        listen 80;
        server_name nexus.domainname.com;
        location /{
           index index.html index.htm index.jsp;
           proxy_pass http://xx.xx.xx.xx:8081/nexus;
        }
     }

问题1:浏览器(chrome)告诉我们,此网页包含重定向循环,此时地址栏显示的地址是http://nexus.domainname.com//通过查找相关资料,在路径app1后面加一个斜杠/,就可以正常转向了。

问题2:访问应用的时候,发现遇到用户认证的时候,自然返回到登录页了。这是啥子情况?此时,如果是一般的tomcat应用,地址栏上,后面会跟上,jsessionId=xxxxxx,而且每次访问都不同。

分析:我们可以猜想,session失效了。

解决:原来,这里存在一个cookie路径的配置问题。原理可参考文章:http://030710314.iteye.com/blog/2095819增加一行proxy_cookie_path /nexus /;即可。

    server {
        listen 80;
        server_name nexus.domainname.com;
        location /{
           index index.html index.htm index.jsp;
           proxy_pass http://xx.xx.xx.xx:8081/nexus/;
           proxy_cookie_path /nexus /;
        }
    }

这种配法,地址栏中的地址,也很优雅。

顺便提及另外一种做法:

    server {
        listen 80;
        server_name nexus.domainname.com;
        location /{
           index index.html index.htm index.jsp;
           proxy_pass http://xx.xx.xx.xx:8081;
           rewrite ^/$ /nexus last;
        }
    }

这种配法,原理很简单,就是仅仅帮你做了一步,访问站点时,自动转发路径到nexus,省得输入。其他该怎样怎样。所以也不用管cookie的事情。

不过缺点就是,地址栏上显示的地址不好看,还是带子目录的。

所以,对于第一种配法:

           proxy_pass http://xx.xx.xx.xx:8081/nexus/;
           proxy_cookie_path /nexus /;

还有一种写法可以达到同样效果:

           proxy_pass http://xx.xx.xx.xx:8081;
           rewrite /(.*)$    /nexus/$1 break;
           proxy_cookie_path /nexus /;

btw,修改了配置文件,别忘了使用nginx -s reload重载配置文件。

时间: 2024-10-12 17:22:53

Nginx快捷配置Tomcat虚拟主机的相关文章

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 扩展 邱李的tomcat文档 https://www.linuser.com/forum.php?mod=forumdisplay&fid=37 JAR.WAR包区别 http://blog.csdn.net/lishehe/article/details/41607725 tomcat常见配置汇总 http://blog.sina.com.cn/s/blog_4ab26b

配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志

配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1" • /usr/local/tomcat/bin/shutdown.sh • /usr/local/tomcat/bin/startup.sh 配置Tom

配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

一. 配置Tomcat监听80端口 vim /usr/local/tomcat/conf/server.xmlConnector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1"/usr/local/tomcat/bin/shutdown.sh/usr/local/tomcat/bin/startup.sh 二.配置Tomcat虚

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16

16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 原文地址:http://blog.51cto.com/13227377/2137413

配置Tomcat监听80端口, 配置Tomcat虚拟主机,Tomcat日志

配置Tomcat监听80端口 编辑配置文件vim /usr/local/tomcat/conf/server.xml在里面找到8080<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />将里面的8080改为80,然后保存退出.然后先关闭tomcat/usr/local/tomcat/bin/

配置tomcat虚拟主机

配置Tomcat监听80端口 修改tomcat的默认端口,将其改为80端口,在Connector port端口指定的地方修改为80端口,wq保存退出 [[email protected] ~]# vim /usr/local/tomcat/conf/server.xml ? <Connector port="80" protocol="HTTP/1.1" ? ? ? ? ? ? ? connectionTimeout="20000" ? ?

Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

配置Tomcat监听80端口 1.配置Tomcat服务的访问端口 Tomcat默认启动的端口是8080,如果你想修改为80,则需要修改server.xml文件. [[email protected] src]# vim /usr/local/tomcat/conf/server.xml 按如下需求更改: 找到Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protoc

nginx常用配置系列-虚拟主机

本来准备详尽的出一份nginx配置讲解,但nginx功能配置繁多,平常使用中使用最多的一般有: 1. 虚拟主机配置 2. HTTPS配置 3. 静态资源处理 4. 反向代理 ================= 虚拟主机配置 ================= 先说虚拟主机配置,nginx的核心配置文件在nginx的安装目录下conf目录中(如果是CentOS通过yum安装则在/etc/nginx目录中) 在conf目录下创建vhost目录,方便管理虚拟主机的配置文件 mkdir vhost 以e

Nginx的配置及其虚拟主机应用

一.Nginx的配置文件主要分为三个部分,全局配置.I/O事件配置和HTTP配置."#"代表注释,配置项末尾以":"结束 全局配置包括Nginx的运行用户.工作进程数.错误日志.PID存放位置等基本信息 这里工作进程默认为1,如果服务器有多块CPU或者使用多核处理器,我们可以将工作进程数量修改成与CPU核心数相同,但如果网站访问量需求并不大,一般设置为1就够了 2.I/O事件配置,使用"events {}"界定标记,用来指定Nginx进程的I/O