Linux+Nginx+Tomcat 多域名,多应用在同一服务器的配置

原创 2015年07月06日 20:34:26

Linux+Nginx+Tomcat 多域名,多应用在同一服务器的整合配置


实现的效果和达到的目的为:

1、有两个域名www.aaa.com www.bbb.com 分别对应两个两个不同的网站,但是公用同一个Nginx和Tomcat服务器;

2、所有的JSP等动态内容转发到Tomcat处理,js、图片等直接由Nginx负责处理;

3、上传的图片不在应用的根目录下面,需要另外指定转发(Nginx Alias 虚拟目录)


以下为示例配置文件:


Tomcat 配置:server.xml

<Host name="www.aaa.com"  appBase="/data/www"      #指定虚拟主机 www.aaa.com

          unpackWARs="true" autoDeploy="true">

        <Context path="/" docBase="/data/www/aaa"  debug="0"reloadable="true"></Context>

…. ….

 

<Host name="www.bbb.com"  appBase="/data/www"  #指定虚拟主机 ww.bbb.com

  unpackWARs="true" autoDeploy="true">

<Context path="/"docBase="/data/www/bbb" debug="0" reloadable="true"></Context>

… ….



Nginx配置:

编辑Nginx安装目录下conf文件夹中的nginx.conf

server {

   listen       80;

   server_name www.aaa.com aaa.com;

    root  /data/www/aaa; #设定网站的资源存放路径

    index index.html index.htm index.jsp;

 

   #charset utf-8;

   access_log  /var/log/nginx/aaa.access.log  main;

 

   location / {

       index index.html index.htm index.jsp;

       root /data/www/aaa;

       proxy_set_header Hostwww.aaa.com; #此参数重要指向tomcatserver.xml中配置的Host name,以转发给不同的Host处理.

        proxy_pass http://127.0.0.1:8080;

    }

 

   location ~ /Image/ {  #我这里尝试多次只有这种(加“~)才奏效,关于Nginx虚拟目录其他方式参加后面的参考链接介绍

      root /data/www/;

    }

 

   #location ~ .*.jsp$ { #所有jsp的页面均交由tomcat处理

   #     index index.jsp;

   #     proxy_pass http://127.0.0.1:8080; #转向tomcat处理

   # }

 

    location~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  #设定访问静态文件直接读取不经过tomcat

    {

       expires      30d;

    }

   location ~ .*\.(js|css)?$

    {

       expires      1h;

    }

…….

…….

}

 

 

 

server {

   listen       80;

   server_name  www.bbb.com;

    root /data/www/bbb; #设定网站的资源存放路径

    index index.html index.htm index.jsp;

 

   #charset utf-8;

   access_log  /var/log/nginx/bbb.access.log  main;

 

   location / {

       index index.html index.htm index.jsp;

       root /data/www/bbb;

       proxy_set_header Host www.bbb.com;

       proxy_pass http://127.0.0.1:8080;

    }

 

   #location ~ .*.jsp$ { #所有jsp的页面均交由tomcat处理

   #     index index.jsp;

   #     proxy_pass http://127.0.0.1:8080; #转向tomcat处理

   # }

 

   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  #设定访问静态文件直接读取不经过tomcat

    {

       expires      30d;

    }

   location ~ .*\.(js|css)?$

    {

       expires      1h;

}

 

… ….

 




参考文章:http://m.blog.csdn.net/blog/oyxm0/20455153 

http://blog.csdn.net/kobejayandy/article/details/20867351 



 

【三种Nginx 虚拟目录使用方式,本人验证的结果只有(只有这种(加“~”)才奏效,其他两种方式验证无果)】

Nginx中有alias与root两种标签,最基本的区别是:alias指定的目录是绝对的地址,root是指定目录是相对的上级目录,并且该上级目录要含有location指定名称的同名目录。如:

1 location /Image{
2 alias /data/Image;
3 index index.html index.htm ;
4 }

这种配置下http://localhost/Image 指定的是/data/Image

1 location /Image  {
2 root /data/;
3 index index.html index.htm ;
4 }

这种配置下,访问http://localhost/Image时,Nginx会去找/data目录下的Image文件夹

Nginx也有与Apache类型的alias功能,示例配置如下

1 location ~ /Image{
2 root /data/;
3 index index.html index.htm;
4 }


【以下为一篇Nginx虚拟目录的介绍】

原文出处:http://down.chinaz.com/server/201111/1382_1.htm 


Nginx设置alias实现虚拟目录 alias与root的用法区别


Nginx 貌似没有虚拟目录的说法,因为它本来就是完完全全根据目录来设计并工作的。如果非要给nginx安上一个虚拟目录的说法,那就只有alias标签比较"像",干脆来说说alias标签和root标签的区别吧。最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewrite的break。

说不明白,看下配置:

location /abc/ {
    alias /home/html/abc/;
}

在这段配置下,http://test/abc/a.html就指定的是/home/html/abc/a.html。这段配置亦可改成

location /abc/ {
    root /home/html/;
}

这样,nginx就会去找/home/html/目录下的abc目录了,得到的结果是相同的。但是,如果我把alias的配置改成:

location /abc/ {
    alias /home/html/def/;
}

  那么nginx将会从/home/html/def/取数据,这段配置还不能直接使用root配置,如果非要配置,只有在/home/html/下建立一个 def->abc的软link(快捷方式)了。一般情况下,在location /中配置root,在location /other中配置alias是一个好习惯。至于alias和root的区别,我估计还没有说完全,如果在配置时发现奇异问题,不妨把这两者换换试试。

nginx alias的设置

nginx也有像apache的别名功能,格式为:

location ~ /alias {
root /home/www/default;
index index.php;
}

但nginx在处理php脚本时,需要传递给fastcgi才能处理,所以比apache的别名设置多一个,下面我们以phpmyadmin别名设置为例:

location ~ ^/phpmyadmin.+.php$ {
root /home/www/default;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /phpmyadmin {
root /home/www/default;
index index.php;
}



另一篇:nginx虚拟目录(alias与root的区别) http://www.2cto.com/os/201202/119658.html 


nginx+tomcat绑定二级域名,部署多个应用

本文介绍在阿里云上开通二级域名,并使用单个tomcat部署多个应用和ngnix+tomcat(多个)两种方式实现多个应用的部署,以下为操作步骤。...
  • jrn1012
  • jrn1012
  • 2017年04月24日 15:20
  • 1927

Nginx+Tomcat实现单IP、多域名、多站点的访问

最近帮朋友做了两个网站,预算很小很小.小到两个网站只能跑在一台512M内存的公网服务器上(tomcat+mysql,由于内存太小了,只能把两个网站部署在同一个tomcat上),每个网站有自己的域名,初...
  • kobejayandy
  • kobejayandy
  • 2014年03月09日 22:04
  • 15760

nginx+tomcat绑定域名配置记录

记录一下用nginx做反向代理,tomcat为web容器的域名绑定过程。 首先,当然是需要在域名管理器中配置域名指向自己的服务器IP(当然,域名都没有的还说个毛!) 然后就是配置nginx了, n...
  • AJian759447583
  • AJian759447583
  • 2015年12月30日 23:13
  • 6587

tomcat+nginx域名配置

大多数时候我们一台服务器会放置多个tomcat,这时如何通过域名的方式(不加端口号)访问tomcat下的某个项目,通常情况下是修改tomcat端口为80,但对多tomcat有很多呕病,比如你要解决80...
  • crazzy0727
  • crazzy0727
  • 2016年10月07日 15:48
  • 831

Linux下配置Nginx + 双Tomcat负载均衡

引言 Nginx简 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 ...
  • s77108887
  • s77108887
  • 2016年06月05日 08:43
  • 2672

Linux(CentOS 7)下安装配置nginx代理多个tomcat实例和应用

注:本文 nginx版本:1.12.2 Tomcat版本: 9.0.2 *yum安装nginx *配置多个tomcat *多个域名多个应用...
  • cheetahlover
  • cheetahlover
  • 2017年12月19日 17:58
  • 144

linux下tomcat多域名配置

1.修改/ect/hosts 内容如下 127.0.0.1       localhost 127.0.0.1       www.5sai.net.cn 127.0.0.1       ...
  • s464036801
  • s464036801
  • 2012年11月24日 13:04
  • 1249

Nginx+tomcat很详细,运维实际应用(发散思维 nginx+apache nginx +weblogic nginx+websheard 等都可以)

Nginx+tomcat很详细,运维实际应用(发散思维 nginx+apache nginx +weblogic nginx+websheard 等都可以)...
  • tony168hongweigan
  • tony168hongweigan
  • 2016年09月03日 22:54
  • 1707

linux系统一个tomcat配置两个域名,每个域名对应一个项目

由于项目的需要,我们公司有两个域名,每个域名对应一个项目,这样我们就可以使用不同的域名访问不同的项目了, 我们的网站使用的是web服务器Tomcat,框架是自己封装的简易版jsp-servlet,域...
  • u011159417
  • u011159417
  • 2017年03月13日 12:03
  • 1668

使用nginx如何让一个tomcat下的多个应用可以被多个域名绑定

这个是原创。 首先下载一个nginx反代理软件。我不说他的原理,只说他能做什么事情。 这个软件能做哪些事情? 1他能处理负载均衡的问题。 2能处理多个站点或者多个应用session共享问题。 ...
  • oyxm0
  • oyxm0
  • 2014年03月04日 13:31
  • 2111
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux+Nginx+Tomcat 多域名,多应用在同一服务器的配置
举报原因:
原因补充:

(最多只允许输入30个字)