.. _Admin_InstallRevProxy: ====================================== Provoz pomocí reverzní proxy ====================================== Aplikace Elza je často provozována za reverzní proxy. Ta umožňuje její běh na zabezpečený běh na adrese archivu (například: https://elza.archiv-xy.cz, případně: https://www.archiv-xy.cz/elza). V rovině reverzní proxy lze využít Apache HTTPD nebo NGINX. .. _Admin_InstallRevProxy_Sub: Provoz na jiném než kořenovém URL ===================================== Aplikaci je možné provozovat i na jiném než kořenovém URL, například: https://www.archiv-xy.cz/elza. V takovém případě je nutné pomocí reverzní proxy směrovat požadavky z webového serveru do aplikace Elza, více viz: :ref:`Admin_InstallRevProxy`. Na straně Elza je nutné navíc povolit akceptaci hlaviček **X-Forwarded-....** obsahujícími informace o původním URL. V yaml konfiguraci je nutné aktivovat volbu **elza.security.acceptForwardedHeaders=true**. Příklad konfigurace: .. code-block:: yaml elza: ....... security: acceptForwardedHeaders:true ....... Apache HTTPD ================ Příklad konfigurace pro https://elza.archiv-xy.cz .. code-block:: apache ServerName elza.archiv-xy.cz ProxyPreserveHost On ProxyRequests Off ProxyTimeout 60 ProxyPass "/stomp" "ws://vnitrni-server.archiv.cz:8080/stomp" ProxyPassReverse "/stomp" "wss://elza.archiv-xy.cz/stomp" ProxyPass "/" "http://vnitrni-server.archiv:8080/" ProxyPassReverse "/" "https://elza.archiv-xy.cz/" Příklad konfigurace pro https://www.archiv-xy.cz/elza s využitím rewrite filtru a přesměrováním požadavku na vnitřní server :token:`10.2.0.27`: .. code-block:: apache ServerName www.archiv-xy.cz RequestHeader set X-Forwarded-Prefix "/elza" RequestHeader set X-Forwarded-Host "www.archiv-xy.cz" RequestHeader set X-Forwarded-Proto "https" RewriteEngine On RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule "/elza/(.*)$" "ws://10.2.0.27:8080/$1" [P] RewriteRule "/elza/(.*)$" "http://10.2.0.27:8080/$1" [P] Od verze Apache HTTP 2.4.61 je nutné navíc povolit rewrite pro parametry za otazníkem. .. code-block:: apache ServerName www.archiv-xy.cz RewriteEngine On RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule "/elza/(.*)$" "ws://10.2.0.27:8080/$1" [P,UnsafeAllow3F] RewriteRule "/elza/(.*)$" "http://10.2.0.27:8080/$1" [P,UnsafeAllow3F] NGINX ========== Příklad konfigurace pro https://elza.archiv-xy.cz .. code-block:: nginx server { listen 443 ssl; listen [::]:443 ssl; server_name elza.archiv-xy.cz; access_log /var/log/nginx/reverse-access.log; error_log /var/log/nginx/reverse-error.log; location / { # redirect all HTTP traffic to localhost:8080 proxy_pass http://localhost:8080; # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } ssl_certificate /etc/cert/servercertwithchain.pem; ssl_certificate_key /etc/cert/serverkeydec.pem; }