1. 程式人生 > >Nginx loaction配置和Tomcat部署方式

Nginx loaction配置和Tomcat部署方式

昨天寫了一個servlet,除錯的過程學習到了不少東西。

首先前端和服務端是分開的。前端專案放在nginx中,http請求通過nginx轉發。一個<form>表單的action=‘’/ka_upload“,nginx conf中配置為

location /ka_ {
     proxy_pass http://localhost:8080/kmgw/access/post;
     proxy_redirect default;
     # 其他省略
}
通過firebug發現,http://localost:80/ka_upload 一直是404。http://localost:80/ka_upload表示nginx已經接收到了請求,location的ka_在後面自動追加upload。那它沒有轉到proxy_pass的url嗎?其實它應該是也把upload追加到proxy_pass的後面了,相當於http://localhost/kmgw/access/postupload,這當然是404了。

第一種方法,loaction改成 /ka_upload,完全匹配到(可以加上=)。第二是把要轉發的應用的url風格弄得和loaction的一樣,比如保證http://localhost:8080/kmgw/ka_upload是正確可訪問的。

nginx的配置還有很多,暫時未能一一熟悉。

Tomcat的話之前一直以為要執行專案,必須放在webapp下,其實還有其他方法。

1. 打包成war ,拷貝到tomcat/webapp/目錄下

這種方法,tomcat啟動後,會自動解壓到同名目錄下,訪問路徑帶上目錄名即可

2. 修改conf/server.xml

修改conf / server.xml,裡面找到<Host>這段配置

<Host  name="localhost"  appBase="webapps"  unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false"></Host>
在裡面增加<context>配置,即增加了一個web應用,比如:

<Context  path="/prj"  docBase="D:\myprj"  reloadable="true"></Context>

這裡path如果為空,即可以直接通過域名訪問。寫上path="具體值",則要加上專案名,http://localhost:8080/具體值/.....  。風聞,這種配置方式不被推薦

3. 不修改server.xml【推薦使用此方法】

在tomcat資料夾的conf"catalina"localhost(對於Tomcat6版本及其以上,需要自己建立catalina和localhost這兩個資料夾)下新建一個xml檔案。內容為
<?xml version="1.0" encoding="UTF-8"?> 
<Context 
    docBase="換成你的路徑" 
    reloadable="true"> 
</Context> 

注意,這種方式,配置path=**** 是無效的,具體web訪問的路徑以新配置的xml檔名為準,比如配置的為 kkk.xml ,那麼訪問這個web應用就需要/kkk/
參考 http://blog.csdn.net/lawmansoft/article/details/7394331