<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>How to use nginx reverse proxy with Liferay 7.0?</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=112232295" />
  <subtitle>How to use nginx reverse proxy with Liferay 7.0?</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=112232295</id>
  <updated>2026-04-04T11:49:26Z</updated>
  <dc:date>2026-04-04T11:49:26Z</dc:date>
  <entry>
    <title>RE: How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112402344" />
    <author>
      <name>Mirto Silvio Busico</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112402344</id>
    <updated>2019-02-19T14:25:50Z</updated>
    <published>2019-02-19T14:25:50Z</published>
    <summary type="html">Thanks to all; I&amp;#39;ll try asap</summary>
    <dc:creator>Mirto Silvio Busico</dc:creator>
    <dc:date>2019-02-19T14:25:50Z</dc:date>
  </entry>
  <entry>
    <title>RE: How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112362978" />
    <author>
      <name>Richard Yummy</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112362978</id>
    <updated>2019-02-15T08:11:02Z</updated>
    <published>2019-02-15T08:11:02Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;An example of a running configuration. Works for me, but your mileage may vary.&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;code&gt;user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; worker_connections 1024;
}

http {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; log_format&amp;amp;nbsp; main&amp;amp;nbsp; '$remote_addr - $remote_user [$time_local] "$request" '
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; '$status $body_bytes_sent "$http_referer" '
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; '"$http_user_agent" "$http_x_forwarded_for"';

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; access_log&amp;amp;nbsp; /var/log/nginx/access.log&amp;amp;nbsp; main;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; sendfile&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; on;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; tcp_nopush&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; on;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; tcp_nodelay&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; on;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; keepalive_timeout&amp;amp;nbsp;&amp;amp;nbsp; 65;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; types_hash_max_size 2048;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; client_max_body_size 100m;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; include&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; /etc/nginx/mime.types;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; default_type&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; application/octet-stream;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Load modular configuration files from the /etc/nginx/conf.d directory.
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # See http://nginx.org/en/docs/ngx_core_module.html#include
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # for more information.
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; include /etc/nginx/conf.d/*.conf;


&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; upstream liferay_upstream {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; }

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; server {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; listen&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; 80;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; listen&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; [::]:80;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; server_name&amp;amp;nbsp; [yourfqdn];
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; return 301&amp;amp;nbsp;&amp;amp;nbsp; https://[yourfqdn]$request_uri;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; }

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; server {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; listen&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; 443 ssl http2;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; listen&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; [::]:443 ssl;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; server_name&amp;amp;nbsp; [yourfqdn];
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; root&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; /opt/liferay;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Load configuration files for the default server block.
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; include /etc/nginx/default.d/*.conf;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; on;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_certificate&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; /etc/nginx/ssl/mydomain.crt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_certificate_key&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; /etc/nginx/ssl/isdms.key;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Use only TLS
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_protocols TLSv1.1 TLSv1.2;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Tell client which ciphers are available
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_prefer_server_ciphers on;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Enable HSTS
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; add_header Strict-Transport-Security "max-age=31536000" always;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Optimize session cache
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_session_cache&amp;amp;nbsp;&amp;amp;nbsp; shared:SSL:40m;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_session_timeout 4h;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Enable session tickets
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_session_tickets on;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Remove version number on errors
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; server_tokens off;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; location / {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_pass http://liferay_upstream;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_set_header X-Real-IP&amp;amp;nbsp; $remote_addr;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_set_header X-Forwarded-For $remote_addr;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_set_header Host $host;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_set_header X-Real-Port $server_port;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_set_header X-Real-Scheme $scheme;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_set_header X-Forwarded-Proto https;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_read_timeout 180s;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_connect_timeout 10s;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_next_upstream error timeout invalid_header http_502 http_503 http_504;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; add_header X-Cached-Status $upstream_cache_status;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; gzip_comp_level 3;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; gzip_proxied any;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; }

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; error_page 404 /404.html;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; location = /40x.html {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; }

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; error_page 500 502 503 504 /50x.html;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; location = /50x.html {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; }
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; }

}&lt;/code&gt;&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Richard Yummy</dc:creator>
    <dc:date>2019-02-15T08:11:02Z</dc:date>
  </entry>
  <entry>
    <title>RE: How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112239744" />
    <author>
      <name>Jack Bakker</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112239744</id>
    <updated>2019-02-05T11:56:24Z</updated>
    <published>2019-02-05T11:56:24Z</published>
    <summary type="html">Somebody (or something) deleted my previous comment that I made on 2019-02-04 ; here it is again:&lt;br /&gt;&lt;br /&gt;I have something like the following for dev/test purposes. &lt;br /&gt;​​​​​​​&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;​​​​​​​server {&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    listen      80;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    listen [::]:80;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    server_name myserver.mydomain.it;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    return 301 https://$server_name$request_uri;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;upstream liferay7-app-server {&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;        server localhost:8080 max_fails=3 fail_timeout=30s;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    }&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;server {&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    # Ensure that HTTP/2 is enabled for the server&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    listen 443 ssl http2;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    listen [::]:443 ssl http2;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    server_name myserver.mydomain.it;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    ssl on;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    ssl_certificate ssl/star.domain.ca.chained.crt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    ssl_certificate_key ssl/star.domain.ca.key;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    location / {&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;        proxy_set_header Host $host;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;        proxy_set_header X-Real-IP $remote_addr;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;        proxy_redirect http:// https://;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;        proxy_pass  http://liferay7-app-server;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;    }&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
    <dc:creator>Jack Bakker</dc:creator>
    <dc:date>2019-02-05T11:56:24Z</dc:date>
  </entry>
  <entry>
    <title>RE: How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112238953" />
    <author>
      <name>Mirto Silvio Busico</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112238953</id>
    <updated>2019-02-05T10:08:28Z</updated>
    <published>2019-02-05T10:08:28Z</published>
    <summary type="html">Thanks.&lt;br /&gt;If I&amp;#39;ll hava success, I&amp;#39;ll share the result here.</summary>
    <dc:creator>Mirto Silvio Busico</dc:creator>
    <dc:date>2019-02-05T10:08:28Z</dc:date>
  </entry>
  <entry>
    <title>RE: How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112238565" />
    <author>
      <name>Olaf Kock</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112238565</id>
    <updated>2019-02-05T09:53:09Z</updated>
    <published>2019-02-05T09:53:09Z</published>
    <summary type="html">&lt;blockquote&gt;Mirto Silvio Busico&lt;br /&gt;Please can you share the Nginx translation?&lt;br /&gt;&lt;/blockquote&gt;I didn&amp;#39;t leave it out, so that you have something to figure out. Personally, I&amp;#39;m working on Apache httpd typically. I could have provided you with the httpd-config that you quoted. But I&amp;#39;m not that familiar with nginx to provide one sample out of the box. &lt;br /&gt;&lt;br /&gt;To correct my statement: I&amp;#39;ll leave the translation work to you &lt;em&gt;or anyone else&lt;/em&gt; who speaks nginx fluently. Sorry...</summary>
    <dc:creator>Olaf Kock</dc:creator>
    <dc:date>2019-02-05T09:53:09Z</dc:date>
  </entry>
  <entry>
    <title>RE: How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112238139" />
    <author>
      <name>Mirto Silvio Busico</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112238139</id>
    <updated>2019-02-05T08:55:31Z</updated>
    <published>2019-02-05T08:55:31Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Thanks a lot Olaf.&lt;br&gt;I'm using this Apache configuration&lt;pre&gt;&lt;code&gt;&amp;lt;virtualhost *:443&amp;gt;
&amp;amp;nbsp;&amp;amp;nbsp; ServerAdmin m.busico@ieee.org
&amp;amp;nbsp;&amp;amp;nbsp; ServerName myserver.mydomain.it
&amp;amp;nbsp;&amp;amp;nbsp; ErrorLog /var/log/apache2/error443.log
&amp;amp;nbsp;&amp;amp;nbsp; LogLevel warn
&amp;amp;nbsp;&amp;amp;nbsp; CustomLog /var/log/apache2/access443.log combined
&amp;amp;nbsp;&amp;amp;nbsp; DocumentRoot /var/www/myserver

&amp;amp;nbsp;&amp;amp;nbsp; SSLEngine on

&amp;amp;nbsp;&amp;amp;nbsp; SSLCertificateFile&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; /etc/ssl/certs/ssl-cert-snakeoil.pem
&amp;amp;nbsp;&amp;amp;nbsp; SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;filesmatch "\.(cgi|shtml|phtml|php)$"&amp;gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; SSLOptions +StdEnvVars
&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;/filesmatch&amp;gt;
&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;directory usr lib cgi-bin&amp;gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; SSLOptions +StdEnvVars
&amp;amp;nbsp;&amp;amp;nbsp; &amp;lt;/directory&amp;gt;

&amp;amp;nbsp;&amp;amp;nbsp; ProxyRequests Off
&amp;amp;nbsp;&amp;amp;nbsp; ProxyPreserveHost On
&amp;amp;nbsp;&amp;amp;nbsp; ProxyPass / ajp://icons:8009/
&amp;amp;nbsp;&amp;amp;nbsp; ProxyPassReverse / ajp://icons:8009/

&amp;lt;/virtualhost&amp;gt; &lt;/code&gt;&lt;/pre&gt;which works fine; but I need to switch to Nginx (see the P.S.).&lt;br&gt;&lt;br&gt;Please can you share the Nginx translation?&lt;br&gt;&lt;br&gt;&lt;br&gt;P.S.&lt;br&gt;I'm trying to integrate Neo4j in Liferay and I found that Neo4j needs a tcp stream proxy. Nginx support proxyng tcp strams but do not support ajp.&lt;br&gt;So seems that using Apache as proxy I can have liferay but not Neo4j and using Nginx I can have Neo4j but not Liferay.&lt;br&gt;Any solution that manages Liferay and Neo4j is good for me.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Mirto Silvio Busico</dc:creator>
    <dc:date>2019-02-05T08:55:31Z</dc:date>
  </entry>
  <entry>
    <title>RE: How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112236807" />
    <author>
      <name>Olaf Kock</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112236807</id>
    <updated>2019-02-05T05:52:41Z</updated>
    <published>2019-02-05T05:52:41Z</published>
    <summary type="html">What David says.&lt;br /&gt;Personally, I prefer to proxy through AJP, rather than through HTTP, because this protocol covers all the issues transparently. &lt;br /&gt;&lt;br /&gt;If you stay on HTTP: On Apache httpd, there&amp;#39;s a directive named &amp;#34;ProxyPreserveHost&amp;#34; that needs to be included, and it will make Liferay (or tomcat) aware of the differing hostname that it should use to create a URL. I&amp;#39;ll leave the translation to the nginx world to you.</summary>
    <dc:creator>Olaf Kock</dc:creator>
    <dc:date>2019-02-05T05:52:41Z</dc:date>
  </entry>
  <entry>
    <title>RE: How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112232638" />
    <author>
      <name>David H Nebinger</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112232638</id>
    <updated>2019-02-04T19:34:08Z</updated>
    <published>2019-02-04T19:34:08Z</published>
    <summary type="html">Although targeting Apache httpd, I think you&amp;#39;re facing the same concern from &lt;a href="https://community.liferay.com/blogs/-/blogs/fronting-liferay-tomcat-with-apache-httpd-daemon-revisted"&gt;https://community.liferay.com/blogs/-/blogs/fronting-liferay-tomcat-with-apache-httpd-daemon-revisted&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Liferay normally builds URLs from the incoming connection request details; when you are proxying, the incoming URL will have the proxy IP, not the actual client IP.&lt;br /&gt;&lt;br /&gt;By configuring to pass the incoming connection details and configuring Liferay to use the headers instead of the request itself, Liferay will construct the URLs correctly.</summary>
    <dc:creator>David H Nebinger</dc:creator>
    <dc:date>2019-02-04T19:34:08Z</dc:date>
  </entry>
  <entry>
    <title>How to use nginx reverse proxy with Liferay 7.0?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112232294" />
    <author>
      <name>Mirto Silvio Busico</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=112232294</id>
    <updated>2019-02-04T17:56:12Z</updated>
    <published>2019-02-04T17:56:12Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hi all,&lt;br&gt;I'm trying to use nginx as a reverse proxy in front of a liferay 7.0&lt;br&gt;&lt;br&gt;The configuration below&lt;pre&gt;&lt;code&gt;server {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; listen 443 ssl;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_certificate /root/sslcerts/servizi.crt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; ssl_certificate_key /root/sslcerts/servizi.key;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; access_log /var/log/nginx/myserver.access.log;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; error_log /var/log/nginx/myserver.error.log;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; root /var/www/reverse;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; set $proxy_upstream_name "-";

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; # Add index.php to the list if you are using PHP
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; index index.html index.htm index.nginx-debian.html;

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; server_name "myserver" "myserver.mydomain.it";

&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; location / {
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; set $proxy_upstream_name "myserver.mydomain.it";
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; proxy_pass&amp;amp;nbsp; http://10.220.90.86:8080;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; }

}
&lt;/code&gt;&lt;/pre&gt;gives me correctly the home page; but all css is lost and the navigation links are in the form "http://10.220.90.86:8080/[navigation link]" instead of ""myserver.mydomain.it/[navigation link]"&lt;br&gt;&lt;br&gt;In the instance the virtual host is set to "myserver.mydomain.it"&lt;br&gt;&lt;br&gt;Anyone knows how to configure nginx reverse proxy?&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Mirto Silvio Busico</dc:creator>
    <dc:date>2019-02-04T17:56:12Z</dc:date>
  </entry>
</feed>
