Linux部署WEB專案,一臺伺服器部署兩個Tomcat和兩個專案
首先安裝JDK+Tomcat和配置好環境變數,部署第一個專案是比較簡單,本文主要是針對部署第二個專案的時候出現的一些問題和解決辦法進行敘述。可能解決辦法有很多種,目的都是為了解決遇到的問題。我們公司一直以來採用的是Nginx+Tomcat進行專案部署。
第一個專案使用的是Tomcat的預設配置,即監聽8080埠,Nginx配置監聽80埠,當收請求時轉發給Tomcat所在的8080埠。
下面是部署第二個專案:
Nginx配置:
我這裡採用的是一個專案配置一個配置檔案的方法,在Nginx的conf.d的資料夾中新增一個配置檔案,可以賦值以前配置的nginx配置檔案修改一些配置即可。
在server配置中修改監聽的埠號listen欄位第二個專案監聽的是8082埠,再配置相應的location就可以了。下面是配置檔案
server {
listen *:8082;
server_name 132.159.221.3;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
client_max_body_size 100m;
proxy_connect_timeout 1000s;
proxy_read_timeout 1000s;
proxy_send_timeout 1000s;
access_log logs/cgi_access.log;
error_log logs/cgi_error.log;
proxy_redirect off;
proxy_set_header Cookie $Http_cookie;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
#proxy_connect_timeout 90;
#proxy_send_timeout 90;
#proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 1024k;
location / {
alias /home/idc/erp_web/;#這裡是訪問靜態資源的地址
}
location /erp {
proxy_pass http://localhost:8083/;#這裡配置的是訪問後臺介面轉發地址
}
location /login/ {
proxy_pass http://localhost:8083/login;#登入頁面的地址
}
}
可以更具自己的需求配置多個location
Tomcat配置:
在配置第二個Tomcat配置檔案時需要注意修改4處,有很多百度搜到的結果只修改了3處。導致會出現一些小bug。
首先是<Server port="8016" shutdown="SHUTDOWN">把原本的8006改為了現在的8016
其次是<Connector port="8083" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
然後是<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />
最後是在第三處中新增一個proxyPort="8082"屬性。即:
<Connector port="8083" protocol="HTTP/1.1" proxyPort="8082" connectionTimeout="20000" redirectPort="8443" />
如果第四處不新增會導致當專案中出現重定向的時候Tomcat會預設去訪問80埠,由於第一個專案配置的Nginx監聽的80埠,所以導致了第二個專案重定向登入頁面的時候報錯,報錯如下:
所以如果專案中出現重定向則注意修改。