2017-09-13 1 views
0

J'essaye de tester la dernière version de Liferay (Liferay 7.0-ga4) et de l'installer derrière un proxy inverse (nginx). J'utilise docker et docker compose à des fins de test, et je crée un domaine factice docker.domain.com. Liferay fonctionne correctement si j'accède directement à son URL et si aucun proxy inverse n'est configuré.Exécution de Liferay à la suite d'un proxy inverse Nginx

Aussi, j'ai succès à installer Liferay derrière le serveur nginx si j'utilise l'emplacement racine: dans la section proxy_pass

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 est le nom du conteneur docker lié dans Compose docker. Et les options de Liferay:

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

Pour configurer le proxy inverse dans Liferay. Le résultat est correct si je tape http://docker.domain.com/:

Liferay welcome page

Je peux me connecter, accepter les conditions, ... tout semble bien. Mais quand j'utilise un emplacement qui n'est pas root (c'est-à-dire/lifeay), j'ai des problèmes avec les liens, les images et les CSS en général.

Avec un configuraion dans nginx semblable à:

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; 
} 

Et d'ajouter comme suggéré here à la configuration de Liferay:

portal.proxy.path=/liferay 

Lorsque vous accédez à http://docker.domain.com/liferay toutes les URL sont foiré et CSS ne sont pas représentés. Ici, je joins une capture d'écran du résultat final:

Liferay style goes wrong

Il est intéressant de la ligne

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

Où "Liferay" apparaît deux fois dans l'url. Certaines erreurs apparaissent dans le journal tomcat de la ligne de vie:

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} 
.... 

De toute évidence, certains fichiers sont introuvables. J'ai créé un exemple simple avec docker github pour le tester seulement passer quelques minutes si quelqu'un est intéressé. Pourtant, je suis assez sûr que quelque chose manque dans ma configuration de Liferay, mais je ne suis pas capable de comprendre quoi. Au moins, je ne trouve aucun indice dans la documentation officielle.

Répondre

0

Semble que le problème était avec la barre oblique finale dans proxy_pass. C'est ce qui fait la différence. A la suite this example, le fichier de configuration nginx sera:

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; 
    } 

Et semble maintenant que Liferay CSS et les URL fonctionnent correctement.