From b4f54a8fb8bb33b57542f30fd76adf64654a80bd Mon Sep 17 00:00:00 2001 From: kireevdmitry Date: Mon, 16 Oct 2023 05:55:13 +0000 Subject: [PATCH 1/5] Add X-Forwarded-Prefix header --- apache/proxy-to-virtual-path.conf | 3 ++- haproxy/proxy-to-virtual-path.cfg | 4 ++-- iis/proxy-to-virtual-path/README.md | 3 +++ iis/proxy-to-virtual-path/web.config | 3 ++- nginx/proxy-to-virtual-path.conf | 3 ++- traefik/proxy-to-virtual-path.toml | 2 +- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apache/proxy-to-virtual-path.conf b/apache/proxy-to-virtual-path.conf index 3da92e5..790834a 100644 --- a/apache/proxy-to-virtual-path.conf +++ b/apache/proxy-to-virtual-path.conf @@ -1,4 +1,5 @@ Listen 80 +LoadModule mpm_event_module modules/mod_mpm_event.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule unixd_module modules/mod_unixd.so @@ -22,7 +23,7 @@ Define DS_ADDRESS backendserver-address SetEnvIf Host "^(.*)$" THE_HOST=$1 RequestHeader setifempty X-Forwarded-Proto http RequestHeader setifempty X-Forwarded-Host %{THE_HOST}e - RequestHeader edit X-Forwarded-Host (.*) $1${VPATH} + RequestHeader setifempty X-Forwarded-Prefix ${VPATH} ProxyAddHeaders Off diff --git a/haproxy/proxy-to-virtual-path.cfg b/haproxy/proxy-to-virtual-path.cfg index 4156b44..15603c9 100644 --- a/haproxy/proxy-to-virtual-path.cfg +++ b/haproxy/proxy-to-virtual-path.cfg @@ -12,6 +12,6 @@ frontend default_port_80 default_backend default_service backend default_service acl existing-x-forwarded-host req.hdr(X-Forwarded-Host) -m found - http-request add-header X-Forwarded-Host %[req.hdr(Host)]/documentserver-virtual-path unless existing-x-forwarded-host - reqrep ^([^\ :]*)\ /documentserver-virtual-path/(.*) \1\ /\2 + http-request add-header X-Forwarded-Prefix /documentserver-virtual-path unless existing-x-forwarded-host + http-request replace-path /documentserver-virtual-path[/]?(.*) /\1 server onlyoffice-documentserver backendserver-address:80 diff --git a/iis/proxy-to-virtual-path/README.md b/iis/proxy-to-virtual-path/README.md index 3ef2f03..f474a0e 100644 --- a/iis/proxy-to-virtual-path/README.md +++ b/iis/proxy-to-virtual-path/README.md @@ -59,3 +59,6 @@ Add IIS server variables. You will need to add `HTTP_X_FORWARDED_PROTO`,`HTTP_X_ * In the right-side menu locate **Manage Server Variables** and click **View Server Variables**. * Use the **Add...** action and add the `HTTP_X_FORWARDED_PROTO`,`HTTP_X_FORWARDED_HOST`,`HTTP_THE_SCHEME` and `HTTP_THE_HOST` one after another. More information on adding the variables to the IIS server can be found [here](https://www.iis.net/learn/extensions/url-rewrite-module/setting-http-request-headers-and-iis-server-variables). + + +For example to work correctly, you need to add a virtual path to the documentserver configuration file %ProgramW6432%\ONLYOFFICE\example\config\local.json: server.siteUrl: "/documentserver-virtual-path/" diff --git a/iis/proxy-to-virtual-path/web.config b/iis/proxy-to-virtual-path/web.config index e4b4a61..0fcd453 100644 --- a/iis/proxy-to-virtual-path/web.config +++ b/iis/proxy-to-virtual-path/web.config @@ -29,7 +29,8 @@ - + + diff --git a/nginx/proxy-to-virtual-path.conf b/nginx/proxy-to-virtual-path.conf index 7c5cb20..b28145c 100644 --- a/nginx/proxy-to-virtual-path.conf +++ b/nginx/proxy-to-virtual-path.conf @@ -22,9 +22,10 @@ map $http_upgrade $proxy_connection { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; -proxy_set_header X-Forwarded-Host $the_host/documentserver-virtual-path; +proxy_set_header X-Forwarded-Host $the_host; proxy_set_header X-Forwarded-Proto $the_scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +proxy_set_header X-Forwarded-Prefix /documentserver-virtual-path; server { diff --git a/traefik/proxy-to-virtual-path.toml b/traefik/proxy-to-virtual-path.toml index 66b943e..b1d3a63 100644 --- a/traefik/proxy-to-virtual-path.toml +++ b/traefik/proxy-to-virtual-path.toml @@ -21,7 +21,7 @@ defaultEntryPoints = ["http"] passHostHeader = true [frontends.docservice.headers.customrequestheaders] - X-Forwarded-Host = "{{TRAEFIK_HOST}}/documentserver-virtual-path" + X-Forwarded-Prefix = "/documentserver-virtual-path" [frontends.docservice.routes.vpath] rule = "PathPrefixStrip:/documentserver-virtual-path/" \ No newline at end of file From 4d5d6bd3ee0fae5f6d77aed0f91426cd245f1e6f Mon Sep 17 00:00:00 2001 From: kireevdmitry Date: Mon, 16 Oct 2023 06:52:35 +0000 Subject: [PATCH 2/5] Fix endline --- traefik/proxy-to-virtual-path.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/traefik/proxy-to-virtual-path.toml b/traefik/proxy-to-virtual-path.toml index b1d3a63..8d79d39 100644 --- a/traefik/proxy-to-virtual-path.toml +++ b/traefik/proxy-to-virtual-path.toml @@ -24,4 +24,5 @@ defaultEntryPoints = ["http"] X-Forwarded-Prefix = "/documentserver-virtual-path" [frontends.docservice.routes.vpath] - rule = "PathPrefixStrip:/documentserver-virtual-path/" \ No newline at end of file + rule = "PathPrefixStrip:/documentserver-virtual-path/" + From 743b0c86964fa7d95af43e6abebffd9affdc457b Mon Sep 17 00:00:00 2001 From: kireevdmitry Date: Mon, 16 Oct 2023 07:07:04 +0000 Subject: [PATCH 3/5] Fix endline --- traefik/proxy-to-virtual-path.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/traefik/proxy-to-virtual-path.toml b/traefik/proxy-to-virtual-path.toml index 8d79d39..3915acc 100644 --- a/traefik/proxy-to-virtual-path.toml +++ b/traefik/proxy-to-virtual-path.toml @@ -25,4 +25,3 @@ defaultEntryPoints = ["http"] [frontends.docservice.routes.vpath] rule = "PathPrefixStrip:/documentserver-virtual-path/" - From cda3f0fb1a8ab3d5780d5b5c69c8207c9e0313a5 Mon Sep 17 00:00:00 2001 From: kireevdmitry Date: Mon, 16 Oct 2023 13:57:07 +0000 Subject: [PATCH 4/5] Undo the endline fix --- traefik/proxy-to-virtual-path.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/traefik/proxy-to-virtual-path.toml b/traefik/proxy-to-virtual-path.toml index 3915acc..bedcaed 100644 --- a/traefik/proxy-to-virtual-path.toml +++ b/traefik/proxy-to-virtual-path.toml @@ -24,4 +24,8 @@ defaultEntryPoints = ["http"] X-Forwarded-Prefix = "/documentserver-virtual-path" [frontends.docservice.routes.vpath] +<<<<<<< HEAD rule = "PathPrefixStrip:/documentserver-virtual-path/" +======= + rule = "PathPrefixStrip:/documentserver-virtual-path/" +>>>>>>> parent of 4d5d6bd... Fix endline From 2a3631903aefb681f9dd4c73d6acceadec177094 Mon Sep 17 00:00:00 2001 From: kireevdmitry Date: Mon, 16 Oct 2023 14:01:58 +0000 Subject: [PATCH 5/5] Undo the endline fix --- traefik/proxy-to-virtual-path.toml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/traefik/proxy-to-virtual-path.toml b/traefik/proxy-to-virtual-path.toml index bedcaed..b1d3a63 100644 --- a/traefik/proxy-to-virtual-path.toml +++ b/traefik/proxy-to-virtual-path.toml @@ -24,8 +24,4 @@ defaultEntryPoints = ["http"] X-Forwarded-Prefix = "/documentserver-virtual-path" [frontends.docservice.routes.vpath] -<<<<<<< HEAD - rule = "PathPrefixStrip:/documentserver-virtual-path/" -======= - rule = "PathPrefixStrip:/documentserver-virtual-path/" ->>>>>>> parent of 4d5d6bd... Fix endline + rule = "PathPrefixStrip:/documentserver-virtual-path/" \ No newline at end of file