運維 - Nginx反向代理tomcat
仅有的幸福
仅有的幸福 2017-05-16 17:13:23
0
4
495

有兩個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;}

所以到底應該要如何配置?

仅有的幸福
仅有的幸福

全部回覆(4)
迷茫

無法載入是什麼意思?是502?還是jsp中的靜態路徑不對?

迷茫

其實你還是基於上面那個就行的。 。然後基於二級域名的偽靜態轉送就好了。 。具體不寫了。原理是那樣的。要試幾次才確定寫法的。

大致思路就是把 .domain.com/ 都轉送到 http://127.0.0.1:8080/$1/$2

阿神

謝邀!
我認為需要做動靜分離,把js,css和圖片給ngixn處理,不用tomcat處理。 jsp的請求才轉發給tomcat處理。


location ~ .*\.(jpg|js|css)$ 
{ 
root /home/www/image/;
}
世界只因有你

親。 。 。你 root 沒寫, nginx 怎麼給你代理文件?樓上那樣就好。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板