2016-04-28 134 views
8

我在我的VPS上部署我的戰爭文件時遇到了很多問題。在VPS上部署戰爭文件到Tomcat上

我有java-8和tomcat-8。我的服務器是Apache/2.2.22(Debian),我的HTTP在端口80上,在8080上是tomcat。

目前,如果你訪問www.drew-jocham.com,你會得到一個空目錄。但是,如果你去www.drew-jocham.com:8080/resumesite,你會得到我在tomcat上運行的頁面。

當然我試圖做的是有

到目前爲止,我已經建立了一個虛擬主機用戶輸入www.drew-jocham.com而不是端口等在nano /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    ServerName www.drew-jocham.com 
    ServerAlias drew-jocham.com 

    ProxyPass /resumesite http://localhost:8080/resumesite 
    ProxyPassReverse /resumesite http://localhost:8080/resumesite 
</VirtualHost> 

在我的tomcat的server.xml文件中我設置了一個<Host></Host>

<Host name="www.drew-jocham.com" appbase="webapps" 
     unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 

     <Valve className="org.apache.catalina.valves.AccessLogValve" 
       directory="logs" prefix="resumesite_log." suffix=".txt" 
       pattern="common"/> 
     </Host> 

通過上述設置每一個域只是列出我的VPS的目錄。在這一點上,我不知道該怎麼做。

我的問題是:

我希望用戶輸入www.drew-jocham.com而不是www.drew-jocham.com:8080/resumesite。我試圖做到這一點,但正如我上面所說,我的VPS上的每個域都只是用上述設置列出了我的服務器的整個目錄。

也很快所有的網站將戰爭文件,所以會有幾個域名在服務器上。有些會直接存儲在tomcat webapps中,有些會存儲在端口80上的HTTP服務器上。

------------------- UPDATE 1 -------------------

我去了到nano /etc/apache2/sites-enabled/000-default.conf添加下面並重新啓動我的tomcat服務器。

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    ServerName www.drew-jocham.com 
    ServerAlias drew-jocham.com 

    ProxyPass/http://localhost:8080/resumesite 
    ProxyPassReverse/http://localhost:8080/resumesite 
</VirtualHost> 

當我去www.drew-jocham.com還不算什麼,除了下面的圖片渲染:

enter image description here

而且它增加了www.drew-jocham/resumesite對每個域我我有幾個VPS,從而打破了他們。

但是,如果我仍然去www.drew-jocham.com:8080/resumesite它呈現。

+0

@SureshKoya對不起,如果我不夠清楚。請閱讀我對我的文章的最後評論。 – Drew1208

+0

試圖從下往上解開這個謎團,在這裏。將瀏覽器指向http://www.drew-jocham.com:8080/resumesite時會發生什麼?它是否只列出了目錄的內容,正如您在嘗試代理時看到的那樣? – Code4aliving

+0

@BradBales不,它呈現我的頁面。 – Drew1208

回答

1

步驟1: - 在tomcat8服務器中添加以下配置。XML

<Host name="www.drew-jocham.com" appBase="webapps" 
     unpackWARs="true" autoDeploy="true"> 

    <Alias>www.drew-jocham.com</Alias> 
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
      prefix="$logprefix$." suffix=".txt" 
      pattern="%h %l %u %t &quot;%r&quot; %s %b" /> 

    <Context path="" docBase="$RESUMESITEFOLDER$"> 
    <WatchedResource>WEB-INF/web.xml</WatchedResource> 
    </Context> 

    </Host> 

在Apache創建一個網站具有以下

<VirtualHost www.drew-jocham.com> 
     ProxyPreserveHost On 
     ServerName www.drew-jocham.com 
     ServerAlias www.drew-jocham.com 
     Proxy Pass/http://localhost:8080/ 
     ProxyPassReverse/http://localhost:8080/ 
    </VirtualHost> 

它上面的conf工作了我https://smartvocab.in

0

你需要幾個選項中啓用了你的Apache,如vhost_alias,proxy_ajp和mod_jk的我認爲。你的tomcat也需要啓用ajp。 添加到您的Apache配置:

ServerName "yourdomain.com:80" 
ServerAlias "www.yourdomain.com" 
ServerAlias "ipv4.yourdomain.com" 
UseCanonicalName Off 

<IfModule mod_jk.c> 
    JkMount /yourapp ajp13 
    JkMount /yourapp/* ajp13 
    JkMount/ajp13 
    JkMount /* ajp13 
</IfModule>