Nginx loaction配置和Tomcat部署方式
阿新 • • 發佈:2019-01-27
昨天寫了一個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>這段配置
在裡面增加<context>配置,即增加了一個web應用,比如:<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
<Context path="/prj" docBase="D:\myprj" reloadable="true"></Context>
這裡path如果為空,即可以直接通過域名訪問。寫上path="具體值",則要加上專案名,http://localhost:8080/具體值/..... 。風聞,這種配置方式不被推薦
3. 不修改server.xml【推薦使用此方法】