有兩個jsp應用,本地存取位址如下
http://127.0.0.1:8080/app1
http://127.0.0.1:8080/app2
透過下面的設定可以實現 http://domain.com/app1 和 http://domain.com/app2 的訪問
server {
listen 80;
server_name domain.com;
charset utf-8;
location /{
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
現在想用兩個網域來存取這兩個應用程式
透過http://app1.domain.com 來訪問http://127.0.0.1:8080/app1
透過http://app2 .domain.com 來訪問http://127.0.0.1:8080/app2
配置如下
server {
listen 80;
server_name app1.domain.com;
charset utf-8;
location /{
proxy_pass http://127.0.0.1:8080/app1;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name app2.domain.com;
charset utf-8;
location /{
proxy_pass http://127.0.0.1:8080/app2;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
結果只能顯示首頁,靜態資源都無法載入
#我感觉应该这么写可是有语法错误
if ($uri ^/$){proxy_pass http://127.0.0.1:8080/app1;}
if ($uri ^/app1){proxy_pass http://127.0.0.1:8080/$request_uri;}
所以到底應該要如何配置?
無法載入是什麼意思?是502?還是jsp中的靜態路徑不對?
其實你還是基於上面那個就行的。 。然後基於二級域名的偽靜態轉送就好了。 。具體不寫了。原理是那樣的。要試幾次才確定寫法的。
大致思路就是把 .domain.com/ 都轉送到 http://127.0.0.1:8080/$1/$2
謝邀!
我認為需要做動靜分離,把js,css和圖片給ngixn處理,不用tomcat處理。 jsp的請求才轉發給tomcat處理。
親。 。 。你 root 沒寫, nginx 怎麼給你代理文件?樓上那樣就好。