2017-09-13 67 views
0

我想測試Liferay(Liferay 7.0-ga4)的最後一個版本並將其安裝在反向代理(nginx)後面。我使用碼頭和碼頭組成測試目的,並創建一個虛擬域docker.domain.com執行Liferay behing Nginx反向代理

如果我直接訪問它的URL並且沒有配置反向代理,Liferay會正常工作。

另外,我有成功安裝的Liferay Nginx的服務器之後,如果我用根位置:

location/{ 
    proxy_pass http://liferay:8080; 
    proxy_set_header X-Forwarded-Server $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-Proto $scheme; 
} 

liferay在proxy_pass部分是在泊塢窗撰寫鏈接泊塢窗容器的名稱。和Liferay的選項:

web.server.host=docker.domain.com 
web.server.protocol=http 
web.server.http.port=80 

在Liferay中配置反向代理。結果是正確的,如果我輸入http://docker.domain.com/

Liferay welcome page

我可以登錄,接受條款和條件,......一切似乎都很好。

但是,當我使用不是根的位置(即/ lifeay)時,我一般都會遇到鏈接,圖像和css的問題。

隨着nginx的類似configuraion:

location /liferay { 
    proxy_pass http://liferay:8080; 
    proxy_set_header X-Forwarded-Server $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-Proto $scheme; 
} 

和增加的建議here到Liferay的配置:

portal.proxy.path=/liferay 

當訪問到http://docker.domain.com/liferay所有網址都搞砸了和CSS沒有顯示。在這裏,我附上了最終結果的截圖:

Liferay style goes wrong

有趣的是,該行

http://docker.domain.com/liferay/liferay 

哪裏「的Liferay」出現兩次在URL中。有些錯誤出現在Liferay的Tomcat的日誌:

12:48:29,019 WARN [http-nio-8080-exec-3][code_jsp:172] {code="404", msg="/liferay/o/mentions-web/css/mentions.css", uri=/liferay/o/mentions-web/css/mentions.css} 
12:48:29,021 WARN [http-nio-8080-exec-8][code_jsp:172] {code="404", msg="/liferay/o/frontend-css-web/main.css", uri=/liferay/o/frontend-css-web/main.css} 
.... 

顯然,有些文件不會被發現。我用docker github創建了一個簡單的例子來測試它,如果有人感興趣只花幾分鐘。儘管如此,我很確定我的Liferay配置中缺少某些內容,但我無法弄清楚。至少我無法在官方文檔中找到任何線索。

回答

0

似乎問題出現在proxy_pass中的尾部斜線處。這是有所作爲的。繼this example,nginx的配置文件將是:

location /liferay { 
    return 302 /liferay/; 
    } 

    location /liferay/ { 
    proxy_pass http://liferay:8080/; 
    proxy_set_header X-Forwarded-Server $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    } 

而現在看來,Liferay的CSS和URL是否正常工作。