nginx+tomcat 配置不同二級域名訪問tomcat中的對應專案
先修改tomcat的配置
1、找到tomcat的安裝目錄,進入config目錄。開啟server.xml
2、編輯裡面的內容
找到host節點。複製host節點並且編輯裡面的內容:
<Host name="專案訪問的網址" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="專案訪問的絕對目錄" path=""/>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
*注意:專案訪問的網址為你的二級域名。比如 a.erjiyuin.com
專案訪問的絕對目錄示例: /usr/local/tomcat8/apache-tomcat-8.5.29/webapps/你的專案資料夾
這裡有多少個二級域名,就複製多少個host節點,並且像上面一樣編輯2個地方即可。
我弄好的效果圖如上:我配置了2個節點。
儲存檔案,然後重啟tomcat
重啟完成後可以先驗證一下:訪問對應的二級域名,這時候如果nginx沒設定過的話,直接訪問二級域名應該會顯示nginx的歡迎頁,我們可以先加上8080埠訪問自己的 tomcat的配置成功了沒有。
以上的tomcat如果配置好了之後,訪問還需要加8080埠,這不是我們想要的效果
那現在就可以開始nginx的設定了:
先找到nginx的安裝目錄,也是進入到config資料夾下的配置檔案
在配置檔案中,需要把nginx代理到tomcat去。就可以了省略8080埠了
修改代理的方法很多,主要是新增一個server的監聽。找到server的區域,複製一份以做修改,以下是我的:
server {
listen 80;
server_name 你的二級域名;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass 你的二級域名:8080/;
}
}
server的配置和tomcat的一樣,有多少個二級域名就新增多少次server
記得是複製一份,新增在原有的server下面,然後重啟一次nginx。
重啟之前,先驗證一下nginx的配置檔案修改正確沒有:
進入nginx安裝目錄sbin下,輸入命令./nginx -t
看到如下顯示
nginx.conf syntax is ok
nginx.conf test is successful
說明配置檔案正確!
然後就是重啟nginx
進入nginx可執行目錄sbin下,輸入命令./nginx -s reload 即可
然後在訪問二級域名,發現不加8080埠也可以通過二級域名訪問對應的專案檔案目錄了