I have been again trying all kinds of combinations but none of them work. To clear up things, I have made two versions, one where the entry point is "/" and the other is "/bla". Of course, only one of the is active at the same time. This way I can check that I didn't break anything while playing around. When my entry point is "/", it still works fine. My front end config looks like this: # config "/" #ProxyPass / http://example.com:8001/ #ProxyPassReverse / http://example.com:8001/
# config "/bla" ProxyPass /bla http://example.com:8001/bla ProxyPassReverse /bla http://example.com:8001/bla # general RequestHeader set X-Forwarded-Port 443 RequestHeader set X-Forwarded-Scheme https And my mod_wsgi-express is set up in the following way for entry point "/": mod_wsgi-express setup-server /data/website/myApp/wsgi.py \ --reload-on-changes \ --port 8001 \ --user www-data --group www-data \ --server-root /var/www/my_app \ --log-level debug \ --access-log \ --trust-proxy-header X-Forwarded-Host \ --trust-proxy-header X-Forwarded-Port \ --trust-proxy-header X-Forwarded-For \ --trust-proxy-header X-Forwarded-Scheme And for the entry point "/bla": mod_wsgi-express setup-server /data/website/myApp/wsgi.py \ --reload-on-changes \ --port 8001 \ --user www-data --group www-data \ --server-root /var/www/my_app \ --log-level debug \ --access-log \ --trust-proxy-header X-Forwarded-Host \ --trust-proxy-header X-Forwarded-Port \ --trust-proxy-header X-Forwarded-For \ --trust-proxy-header X-Forwarded-Scheme \ --mount-point /bla This seems to be the most reasonable configuration and in my world this should work, but it doesn't (I also found this <https://github.com/GrahamDumpleton/mod_wsgi/issues/356>that seems to work and is very similar to what I do). If I understood your blog posts correctly, I don't have to change anything in my Flask application for this to work. Is that correct? Any ideas what might be wrong here? Am Freitag, 3. April 2020 00:53:58 UTC+2 schrieb Graham Dumpleton: > > Try using the --trust-??? options to mod_wsgi-express mentioned in: > > http://blog.dscpl.com.au/2015/06/proxying-to-python-web-application.html > > The fact that it is saying "Loading ..." suggests that that would be > filled in later by some Javaascript code. > > If your application is not handling the X-Forwarded-??? headers, it may be > generating an incorrect URL in a response that Javascript code is using to > do further AJAX requests to something. > > Also try using the option: > > --mount-point /bla > > option to mod_wsgi-express so the backend mount points matches the front > end mount point. If don't do this, the backend will think it is mounted at > the root of the site, which again may be mucking up generated URLs. > > On 2 Apr 2020, at 9:01 pm, Raphael Monstein <[email protected] <javascript:>> > wrote: > > Ah, I see. here's what I get from curl http://example.com:8001: > > <!DOCTYPE html> > <html> > <head> > <meta http-equiv="X-UA-Compatible" content="IE=edge"> > <meta charset="UTF-8"> > <title>My title</title> > <link rel="icon" type="image/x-icon" href="/_favicon.ico?v=1.4.1"> > <link rel="stylesheet" href=" > https://codepen.io/chriddyp/pen/bWLwgP.css"> > <link rel="stylesheet" href="/assets/style.css"> > <link rel="stylesheet" href="/assets/style.css?m=1585731972.8701963"> > </head> > <body> > > <div id="react-entry-point"> > <div class="_dash-loading"> > Loading... > </div> > </div> > > <footer> > <script id="_dash-config" type="application/json">{ > "url_base_pathname": null, "requests_pathname_prefix": "/", "ui": false, > "props_check": false, "show_undo_redo": false}</script> > <script src="/ > _dash-component-suites/dash_renderer/[email protected] <javascript:> > ?v=1.1.2&m=1576595738"></script> > <script src="/_dash-component-suites/dash_renderer/[email protected] > <javascript:>?v=1.1.2&m=1576595738"></script> > <script src="/ > _dash-component-suites/dash_renderer/[email protected] > <javascript:>?v=1.1.2&m=1576595738"></script> > <script src= > "/_dash-component-suites/dash_core_components/plotly-1.50.1.min.js?v=1.3.1&m=1576595950" > ></script> > <script src= > "/_dash-component-suites/dash_core_components/highlight.pack.js?v=1.3.1&m=1576595950" > ></script> > <script src= > "/_dash-component-suites/dash_core_components/dash_core_components.min.js?v=1.3.1&m=1576595950" > ></script> > <script src= > "/_dash-component-suites/dash_html_components/dash_html_components.min.js?v=1.0.1&m=1576596177" > ></script> > <script src= > "/_dash-component-suites/dash_renderer/dash_renderer.min.js?v=1.1.2&m=1576595738" > ></script> > <script id="_dash-renderer" type="application/javascript">var > renderer = new DashRenderer();</script> > </footer> > </body> > </html> > > And this what I get from curl -u user:password https://example.com/bla: > <!DOCTYPE html> > <html> > <head> > <meta http-equiv="X-UA-Compatible" content="IE=edge"> > <meta charset="UTF-8"> > <title>My title</title> > <link rel="icon" type="image/x-icon" href="/_favicon.ico?v=1.4.1"> > <link rel="stylesheet" href=" > https://codepen.io/chriddyp/pen/bWLwgP.css"> > <link rel="stylesheet" href="/assets/style.css"> > <link rel="stylesheet" href="/assets/style.css?m=1585731972.8701963"> > </head> > <body> > > <div id="react-entry-point"> > <div class="_dash-loading"> > Loading... > </div> > </div> > > <footer> > <script id="_dash-config" type="application/json">{ > "url_base_pathname": null, "requests_pathname_prefix": "/", "ui": false, > "props_check": false, "show_undo_redo": false}</script> > <script src="/ > _dash-component-suites/dash_renderer/[email protected] <javascript:> > ?v=1.1.2&m=1576595738"></script> > <script src="/_dash-component-suites/dash_renderer/[email protected] > <javascript:>?v=1.1.2&m=1576595738"></script> > <script src="/ > _dash-component-suites/dash_renderer/[email protected] > <javascript:>?v=1.1.2&m=1576595738"></script> > <script src= > "/_dash-component-suites/dash_core_components/plotly-1.50.1.min.js?v=1.3.1&m=1576595950" > ></script> > <script src= > "/_dash-component-suites/dash_core_components/highlight.pack.js?v=1.3.1&m=1576595950" > ></script> > <script src= > "/_dash-component-suites/dash_core_components/dash_core_components.min.js?v=1.3.1&m=1576595950" > ></script> > <script src= > "/_dash-component-suites/dash_html_components/dash_html_components.min.js?v=1.0.1&m=1576596177" > ></script> > <script src= > "/_dash-component-suites/dash_renderer/dash_renderer.min.js?v=1.1.2&m=1576595738" > ></script> > <script id="_dash-renderer" type="application/javascript">var > renderer = new DashRenderer();</script> > </footer> > </body> > </html> > > The both look pretty much the same to me, except that if I access it with > the browser it gets stuck at "Loading..." when I go via the proxy. > > I set the log level to debug on the backend server and that works (I can > see some debug messages in the error log from the startup). When I do curl > http://example.com:8001 I get the following: > > [Thu Apr 02 10:50:17.240939 2020] [authz_core:debug] [pid 11192:tid > 139984647812864] mod_authz_core.c(820): [client 127.0.0.1:39026] AH01626: > authorization result of <RequireAny>: granted > [Thu Apr 02 10:50:17.241057 2020] [authz_core:debug] [pid 11192:tid > 139984647812864] mod_authz_core.c(820): [client 127.0.0.1:39026] AH01626: > authorization result of Require all granted: granted > [Thu Apr 02 10:50:17.241070 2020] [authz_core:debug] [pid 11192:tid > 139984647812864] mod_authz_core.c(820): [client 127.0.0.1:39026] AH01626: > authorization result of <RequireAny>: granted > > But when I do curl -u user:password https://example.com/bla I don't get a > new entry in the log file. > > Do you know what that means and how I can fix it? > > > > *Gesendet:* Donnerstag, 02. April 2020 um 10:09 Uhr > *Von:* "Graham Dumpleton" <[email protected] <javascript:>> > *An:* [email protected] <javascript:> > *Betreff:* Re: [modwsgi] Apache proxy and mod_wsgi-express > But with if you get on the host where front end Apache is running and you > use 'curl' to access it using exact URL ProxyPass is using? > > When you do access it via the Apache front end, with --log-level debug, > does it log anything at all indicating the request is received by > mod_wsgi-express? > > > On 2 Apr 2020, at 6:59 pm, [email protected] <javascript:> wrote: > > If I open the port on my firewall and access it directly at port 8001 ( > http://example.com:8001) with it works perfectly fine. > > Am Donnerstag, 2. April 2020 09:45:09 UTC+2 schrieb Graham Dumpleton: > >> So what happens when you access the backend directly? >> >> >> On 2 Apr 2020, at 5:49 pm, [email protected] wrote: >> >> Thank you Graham, me setup is based on the blog posts you suggested. I >> started out with the ProxyPass not inside of Location and then tried all >> kinds of combinations, with no success. I had tried the following: >> >> ProxyPass /bla "http:// >> <http://www.google.com/url?q=http%3A%2F%2Fsrv-lab-t-495.zhaw.ch%3A8001%2F&sa=D&sntz=1&usg=AFQjCNFZ1bAXrhV627byubHJciYqOmnOvw> >> example.com >> <http://www.google.com/url?q=http%3A%2F%2Fexample.com%2F&sa=D&sntz=1&usg=AFQjCNHbmhS24rOBWpzaMcUapS5k_3_-JQ> >> :8001/ >> <http://www.google.com/url?q=http%3A%2F%2Fsrv-lab-t-495.zhaw.ch%3A8001%2F&sa=D&sntz=1&usg=AFQjCNFZ1bAXrhV627byubHJciYqOmnOvw> >> " >> ProxyPassReverse /bla "http:// >> <http://srv-lab-t-495.zhaw.ch:8001/>example.com >> <http://www.google.com/url?q=http%3A%2F%2Fexample.com%2F&sa=D&sntz=1&usg=AFQjCNHbmhS24rOBWpzaMcUapS5k_3_-JQ> >> :8001/ <http://srv-lab-t-495.zhaw.ch:8001/>" >> RequestHeader set X-Forwarded-Proto "https" >> >> Any other ideas on what the issue could be? >> >> Am Donnerstag, 2. April 2020 01:36:03 UTC+2 schrieb Graham Dumpleton: >>> >>> Usually you wouldn't put ProxyPass inside of Location. What happens when >>> you don't use Location and instead use: >>> >>> ProxyPass /bla "http://example.com >>> <http://www.google.com/url?q=http%3A%2F%2Fexample.com%2F&sa=D&sntz=1&usg=AFQjCNHbmhS24rOBWpzaMcUapS5k_3_-JQ> >>> :8001/" >>> ProxyPassReverse /bla "http://example.com:8001/" >>> >>> Note how the sub URL is the first argument to ProxyPass. >>> >>> For more details related to proxying to mod_wsgi-express see: >>> >>> http://blog.dscpl.com.au/2015/06/proxying-to-python-web-application.html >>> >>> http://blog.dscpl.com.au/2015/07/redirection-problems-when-proxying-to.html >>> >>> >>> On 2 Apr 2020, at 6:46 am, [email protected] wrote: >>> >>> I have a frontend Apache that acts as a proxy to my backend >>> mod_wsgi-express proxy to fix an issue that I had before (see >>> https://groups.google.com/forum/#!topic/modwsgi/GTjMMm4wZJI). >>> >>> My front end configuration looks like this: >>> <IfModule mod_ssl.c> >>> <VirtualHost _default_:443> >>> ServerName example.com >>> ServerAdmin [email protected] >>> >>> <Proxy *> >>> AuthType Basic >>> AuthUserFile /data/passwords/passwords.pwd >>> AuthName "myDemoApp" >>> <RequireAll> >>> Require valid-user >>> </RequireAll> >>> </proxy> >>> >>> <Location "/"> >>> ProxyPass "http://example.com:8001/" >>> ProxyPassReverse "http://example.com:8001/" >>> RequestHeader set X-Forwarded-Proto "https" >>> </Location> >>> >>> : >>> >>> </VirtualHost> >>> </IfModule> >>> >>> and my mod_wsgi-express looks like this: >>> mod_wsgi-express setup-server /data/website/myApp/wsgi.py \ >>> --reload-on-changes \ >>> --port 8001 \ >>> --user www-data --group www-data \ >>> --server-root /var/www/my_app \ >>> --log-level info \ >>> --access-log >>> >>> This setup works perfectly fine and opens my page when I go on >>> https://example.com. But I would like to use my proxy to forward the >>> requests to different backends, depending on the URL. >>> >>> To this end, I changed the <Location "/"> to <Location "/bla/">. Not >>> when I open the website at https://example.com I get the Apache2 >>> Default Page, which is what I would expect. But when I try to open >>> https://example.com/bla/ it simply doesn't load the website (no error >>> or something, just the Loading...). I don't get any error, neither in the >>> frontend nor in the backend log. >>> >>> Does anybody have an idea what might be wrong with my configuration? >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "modwsgi" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/modwsgi/889266ce-91e2-4ac3-a9ed-0fd13e6d9ed6%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/modwsgi/889266ce-91e2-4ac3-a9ed-0fd13e6d9ed6%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "modwsgi" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/modwsgi/f5461cdd-e62a-4764-9216-ef7bf47da5e8%40googlegroups.com >> >> <https://groups.google.com/d/msgid/modwsgi/f5461cdd-e62a-4764-9216-ef7bf47da5e8%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/modwsgi/218165cc-50d2-4f2b-8989-9167b3127a6f%40googlegroups.com > > <https://groups.google.com/d/msgid/modwsgi/218165cc-50d2-4f2b-8989-9167b3127a6f%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/modwsgi/5824B189-06E7-406C-A16E-52D9A49E29F2%40gmail.com > > <https://groups.google.com/d/msgid/modwsgi/5824B189-06E7-406C-A16E-52D9A49E29F2%40gmail.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/modwsgi/trinity-16397838-77af-4d30-93a8-8e9ab4fbf39d-1585821663425%403c-app-gmx-bap75 > > <https://groups.google.com/d/msgid/modwsgi/trinity-16397838-77af-4d30-93a8-8e9ab4fbf39d-1585821663425%403c-app-gmx-bap75?utm_medium=email&utm_source=footer> > . > > > -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/modwsgi/85fbfdb4-f239-4309-95b2-7f998bb9efe1%40googlegroups.com.
