2016-09-19 25 views
0

美好的一天!在nginx下彈出mvc重定向工作不正確

我有一個小問題:我的Spring MVC應用程序位於http://localhost:8080/webapp/地址。我已經安裝了nginx的重定向像somedomain.com請求我的應用程序:

server{ 
server_name somedomain.com; 
access_log /var/log/app.log; 

location /{ 
proxy_pass http://localhost:8080/webapp/; 
include /etc/nginx/proxy.conf; 
} 

proxy.conf:

proxy_redirect off; 
proxy_set_header Host $host:$server_port; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

在我使用重定向,這樣的控制器方法之一:

@RequestMapping(value = "/xxx", method = RequestMethod.POST) 
public String xxx(ModelMap modelMap) { 
    return "redirect:/yyy"; 
} 

之後,瀏覽器應該打開http://somedomain.com/yyy,但它尋找http://somedomain.com/webapp/yyy

我在做什麼錯了? 感謝您的幫助。

回答

0

我看到沒有人回答這個問題,但爲了將來的需要我會。

首先,您需要在Tomcat中爲您的域添加虛擬主機,並將您的應用映射到它。

下一個: 變更 http://localhost:8080/webapp/; 要

工作原理:

當您在Tomcat的發動機標籤下的server.xml中添加虛擬主機 你說的到tomcat,我希望你能映射這個域名我的web應用程序。因此,任何請求進入到Tomcat已經在報頭中的域名,然後tomcat會轉發給web應用程序

在nginx.conf

在HTTP標籤將添加服務器標記,偵聽端口80和特定的服務器名稱

Listen 80; server_name somedomain.com;

所以請求到達服務器標籤那麼它將其映射到位置標籤

位置/ { proxy_pass http://localhost:8080/webapp/; //這需要改變並刪除webapp上下文 include /etc/nginx/proxy.conf; }

最後的請求將被轉發到tomcat,那裏的vHost將繼續工作