<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div></div>
            <div>Hello,<br><div><br><div>Sorry if I'm asking again a question on the same topic.<br><div><br><div>I would like to know what is the best practice to setup a web proxy.<br><div><br><div><div>I do it like this<br><div><div>- 1 virtual host per application on the reverse proxy and the proxy_pass points to one IP+path<br><div>- 1 virtual host (default) for all application on the backend server but one location stanza per application<br><div><br><div>The problem is that I meet many problems with installation of application: magento, glpi, etc<br><div><br>Is it the correct way to do it ?<br></div></div></div></div></div><div><br><br></div></div></div><span><div dir="ltr">On this reverse proxy I have a virtual host which looks like that<br></div><div dir="ltr">server {<br></div><div dir="ltr">listen 80;<br></div><div dir="ltr">server_name application1.org;<br></div><div dir="ltr">access_log /var/log/nginx/application1.org.access.log;<br></div><div dir="ltr">error_log /var/log/nginx/application1.org.error.log;<br></div><div dir="ltr">...<br></div><div dir="ltr">location ^~ / {<br></div><div dir="ltr">proxy_pass        <a href="http://10.1.1.10:80/app/application1/;" rel="nofollow" target="_blank">http://10.1.1.10:80/app/application1/;</a><br></div><div dir="ltr">proxy_redirect    off;<br></div><div dir="ltr">proxy_set_header  Host             $http_host;<br></div><div dir="ltr">proxy_set_header  X-Real-IP        $remote_addr;<br></div><div dir="ltr">proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;<br></div><div dir="ltr">proxy_set_header  X-Forwarded-Proto $scheme;<br></div><div dir="ltr">}<br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr">On the web server behind the proxy I just have one virtual host which is the default one<br></div><div dir="ltr">server {<br></div><div dir="ltr">listen 80 default_server;<br></div><div dir="ltr">server_name _;<br></div><div dir="ltr">index index.html index.htm index.php;<br></div><div dir="ltr">root /var/www/htdocs;<br></div><div dir="ltr">location ^~ /app/application1 {<br></div><div dir="ltr">root /var/www;<br></div><div dir="ltr">index index.php;<br></div><div dir="ltr">location ~ \.php$ {<br></div><div dir="ltr">root           /var/www;<br></div><div dir="ltr">try_files $uri =404;<br></div><div dir="ltr">fastcgi_pass   unix:/run/php-fpm.application1.sock;<br></div><div dir="ltr">fastcgi_split_path_info ^(.+\.php)(/.+)$;<br></div><div dir="ltr">fastcgi_index  index.php;<br></div><div dir="ltr">fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;<br></div><div dir="ltr">include        fastcgi_params;<br></div>}</span><br></div></div></div></div></div></div></div><div><br></div>
            
            <div id="yahoo_quoted_7156253347" class="yahoo_quoted">
                <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                    
                    <div>
                        Le mercredi 30 août 2017 à 19:57:40 UTC+2, Francis Daly <francis@daoine.org> a écrit :
                    </div>
                    <div><br></div>
                    <div><br></div>
                    <div>On Sun, Aug 27, 2017 at 11:27:05AM +0000, Mik J via nginx wrote:<br clear="none"><br clear="none">Hi there,<br clear="none"><br clear="none">> > Thats because the pages are called by the reverse proxy server<br clear="none">> > like <a shape="rect" href="http://10.1.1.10:80/app/application1/;and " target="_blank" onclick="return window.theMainWindow.showLinkWarning(this)">http://10.1.1.10:80/app/application1/;and </a>it can't use a FQDN<br clear="none">> > because it's in a private adressing<br clear="none">> Francis: I don't follow that last part.=> I mean that the reverse proxy uses an IP to connect to the backend web server. If it used a fqdn, it has to resolve it, through a dns request<br clear="none"><br clear="none">The backend web server can care about the IP:port you connect to, and<br clear="none">the Host: header you send.<br clear="none"><br clear="none">You can connect to 10.1.1.10:80 and send a Host: header of "app1" if<br clear="none">you want to. No dns resolution involved.<br clear="none"><br clear="none">Anyway, it sounds like you have this part working now; so that's good.<br clear="none"><br clear="none"><br clear="none">> I still have problems, the site doesn't diplay properly because it can't load a javascript<br clear="none"><br clear="none">> The request for the javascript looks like thathttp://application1.org/?wooslider-javascript=load&t=1503832510&ver=1.0.0 HTTP/1.1It arrives on the backend server I see it in the logs (file specified in the stanza location)<br clear="none">> 10.1.1.10 forwarded for IP_CLIENT - - [27/Aug/2017:13:15:12 +0200] "GET /app1/?wooslider-javascript=load&t=1503832510&ver=1.0.0 HTTP/1.1" 404 5 "<a shape="rect" href="http://application1.org/" target="_blank">http://application1.org/</a>" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"<br clear="none"><br clear="none">A request for /?some-thing came to nginx; nginx reverse-proxied the request<br clear="none">as /app1/?same-thing. That is all you want nginx to do, so it is working.<br clear="none"><br clear="none">If your back-end wordpress handles that request incorrectly, that is a<br clear="none">question for your back-end wordpress configuration.<br clear="none"><br clear="none">People on this list who know about wordpress configuration are more<br clear="none">likely to see the question if it is in a new thread with words like<br clear="none">"wordpress" in the Subject: line.<br clear="none"><br clear="none">(If the actual question is "why does my browser request /?some-thing<br clear="none">instead of /thing.js ?", that might also be related to the back-end<br clear="none">config.)<br clear="none"><br clear="none">> Another question, if I want to set expires header, would it be better to do it on the reverse proxy or on the backend server ?<br clear="none"><br clear="none">Again, I'd suggest that people who know about "wordpress" and "expires"<br clear="none">are much more likely to see that question if it is in a thread with an<br clear="none">obvious Subject: line.<div class="yqt9102725985" id="yqtfd00743"><br clear="none"><br clear="none">Good luck with it!<br clear="none"><br clear="none">    f<br clear="none">-- <br clear="none">Francis Daly        <a shape="rect" ymailto="mailto:francis@daoine.org" href="mailto:francis@daoine.org">francis@daoine.org</a><br clear="none">_______________________________________________<br clear="none">nginx mailing list<br clear="none"><a shape="rect" ymailto="mailto:nginx@nginx.org" href="mailto:nginx@nginx.org">nginx@nginx.org</a><br clear="none"><a shape="rect" href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br clear="none"></div></div>
                </div>
            </div></div></body></html>