apache配置中的NamedVirtualHost

时间:2014-04-29 14:25:33

标签: apache virtualhost httpd.conf

我有一个unix系统,其实际名称是“ech-10.45.25.12” 我已经在其中安装了apache服务器。 现在我需要配置它,以便在同一个域中访问两个不同端口中tomcat中同一台机器上运行的两个应用程序。

即,我有两个应用程序在不同端口下的同一台机器上运行

http://ech-10.45.25.12:8080/issuetracker/

http://ech-10.45.25.12:8180/dashboard/

我想将此服务器(ech-10.45.25.12)命名为devjunior.mycompany.com 以下是我在httpd.conf中所做的配置

Listen 80
Listen 8080
Listen 8180

NameVirtualHost ech-10.45.25.12:80
NameVirtualHost ech-10.45.25.12:8080
NameVirtualHost ech-10.45.25.12:8180

<VirtualHost ech-10.45.25.12:80>
ServerName devjunior.mycompany.com
DocumentRoot /www/domain-80
</VirtualHost>

<VirtualHost ech-10.45.25.12:8080>
ServerName devjunior.mycompany.com
DocumentRoot /www/domain-8080
</VirtualHost>

<VirtualHost ech-10.45.25.12:8180>
ServerName devjunior.mycompany.com
DocumentRoot /www/domain-8080
</VirtualHost>

我知道我犯了一个重大错误

但是我应该可以使用以下网址

来访问应用程序
http://devjunior.mycompany.com/issuetracker
http://devjunior.mycompany.com/dashboard

我应该在系统中任何位置的任何文件夹下创建任何目录 请告诉我。

2 个答案:

答案 0 :(得分:0)

您只配置了名称。所以你已经配置了Apache来监听:

http://devjunior.mycompany.com:8080
http://devjunior.mycompany.com:8180

你可以:

  1. 使用namevirtualhost配置2个域而不使用端口。 这是做你想做的最优雅的方式

  2. 配置指向文件系统上单个目录的单个域,其中包含2个不同应用程序的链接。这适用于PHP主要或纯HTML页面。对于更复杂的应用程序,您可能会遇到很多麻烦。

  3. 域和端口。就像你做的那样。但您只能通过http://devjunior.mycompany.com:8080/issuetrackerhttp://devjunior.mycompany.com:8180/dashboard

  4. 进行访问

    解决方案1 ​​

    您可以使用不同的域或子域(在单点登录的情况下可以使用cookie)。

    Listen 80
    
    NameVirtualHost ech-10.45.25.12:80
    
    <VirtualHost ech-10.45.25.12:80>
    ServerName devjunior.mycompany.com
    DocumentRoot /www/domain-80
    </VirtualHost>
    
    <VirtualHost ech-10.45.25.12:80>
    ServerName dashboard.devjunior.mycompany.com
    DocumentRoot /www/domain-8080
    </VirtualHost>
    
    <VirtualHost ech-10.45.25.12:80>
    ServerName issuetracker.devjunior.mycompany.com
    DocumentRoot /www/domain-8180
    </VirtualHost>
    

    解决方案2留作读者的练习......:P

答案 1 :(得分:0)

这是我做的工作。 虽然etc / hosts文件中的名称更改在我的内部网中没有任何作用,所以我使用了机器的实际名称,即ech-10.45.25.12

NameVirtualHost ech-10.45.25.12:80

<VirtualHost ech-10.45.25.12:80>

   ServerName ech-10.45.25.12
   ProxyPreserveHost on
   ProxyPass /issuetracker http://ech-10.45.25.12:8080/issuetracker
   ProxyPass /dashboard http://ech-10.45.25.12:8180/dashboard

</VirtualHost>

另外不要忘记添加“proxyName”&amp; tomcat的server.xml中的标记的“proxyPort”属性