Yes, I just discovered the same thing. Your proxy needs to append the port number if you are specifying it in VirtualHosts.ini.
But in the process of investigating this, I discovered a bug. If there is no virtual host match it should default to the *default* web root, not the last root mapped by a virtual host. This is fixed in the shortly arriving v7.0r1. > On Oct 2, 2017, at 11:03 AM, Doug Hall <doughall...@gmail.com> wrote: > > I've fixed it. Apparently, since the header information did not include the > port number, it resolved to the last known root, which was set by visiting > the url with the port number. I fixed it by removing everything after the @ > (including the port number) in my VirtualHosts.ini file, as follows: > > /* IP Address Hostname[:port] Language > Root Default */ > * localhost:8010 * > location_1_folder * > * name1@ * > location_1_folder * > * name2.localhost:8010 * > location_2_folder * > * name2@ * > location_2_folder * > > Perhaps there's a directive that I could have used to include the port > number in the request, but this seems to work, too. > > Thanks, for taking your time on this! The problem was located and > determined to reside between the chair and keyboard. :-) > > Doug > > On Mon, Oct 2, 2017 at 11:54 AM, Aparajita Fishman <aparaj...@aparajita.com> > wrote: > >> I'm looking into it. >> >>> On Oct 2, 2017, at 9:27 AM, Doug Hall <doughall...@gmail.com> wrote: >>> >>> Okay, I've dug a little further and have more information, now. It >> appears >>> to be a Virtualhosts.ini issue, not an nginx issue, but I can't be sure, >>> because going directly to the URL, (with the port number) bypasses nginx >>> altogether, and Active4D servers the correct website. I put a log message >>> in the On Web Connection method, to write the header information of the >>> request to a log file. First, my VirtualHosts.ini configuration, then the >>> request headers, with names changed to obscure the guilty: >>> >>> VirtualHosts.ini: >>> >>> /* IP Address Hostname[:port] Language >>> Root Default */ >>> * localhost:8010 * >>> location_1_folder * >>> * na...@.domain.com:8010 * >>> location_1_folder * >>> * name2.localhost:8010 * >>> location_2_folder * >>> * na...@.domain.com:8010 * >>> location_2_folder * >>> >>> >>> request header: >>> >>> 10/2/17 at 09:41:58: Header: GET >>> /index.a4d?fuseaction=<location_2_circuit>.main HTTP/1.0 >>> Accept: >>> text/html,application/xhtml+xml,application/xml;q=0.9, >> image/webp,image/apng,*/*;q=0.8 >>> Accept-Encoding: gzip, deflate >>> Accept-Language: en-US,en;q=0.8 >>> Connection: close >>> Cookie: c42_cookie_token=07l322blahblah; __utmc=135214817; >>> PROD=8BuOGblahblah; _ga=GA1.2.767blahblah; _gid=GA1.2.125blahblah >>> Host: name1temp.domain.com >>> Referer: http://name1temp.domain.com/ >>> Upgrade-Insecure-Requests: 1 >>> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) >>> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 >>> X-Forwarded-For: My_IP_Address >>> X-Real-IP: My_IP_Address >>> >>> Obviously, I've obscured my addresses and port numbers (for security), >> but >>> I actually did use the "@" in virtualhosts.ini to match "temp" at the end >>> of my hostname. Yes, that temporary URL is defined on our local DNS >> server. >>> >>> The point above, is that Active4D is serving circuit2's root folder even >>> though the header shows that it's receiving name1temp from my reverse >> proxy >>> configuration in nginx. Now, there's nothing in the header that says >>> anything about the port number, however it wouldn't have logged this >>> message had it not been sent to the correct port, so I'm not sure that's >> a >>> problem. >>> >>> Also, remember that the reverse happens, too. If I visit >>> name1temp.domain.com:8010 (I include the port number in the URL), then >>> thereafter, going to either name1temp.domain.com or name2temp.domain.com >>> (without the port number), will both resolve to name1's root folder. >> When I >>> visit name2temp.domain.com:8010. Then, it will always resolve to name2's >>> root folder, until I visit name1temp.domain.com:8010 again. >>> >>> Thanks for any assistance. I'm losing hair, over here. :-( >>> >>> Doug >>> >>> On Fri, Sep 29, 2017 at 1:58 PM, Doug Hall <doughall...@gmail.com> >> wrote: >>> >>>> I posted this on the NUG as well, but it may or may not be more relevant >>>> here: >>>> >>>> I am having some problems with my Nginx reverse proxy. I'm running >> 4Dv15, >>>> and Active4D 6.4r3, using the 4D server shell. I have successfully >>>> configured two web roots in Active4D, which run on the same 4D Web >> Client, >>>> on port 8010. I have two different host names which are pointed to the >> same >>>> IP address. I'll call them name1.domain.com:8010 and >> name2.domain.com:8010. >>>> These successfully resolve to the appropriate web root within Active4D, >>>> when I put those two urls in my web browser. >>>> >>>> I set up my proxy in nginx two different ways, and neither of them >>>> consistently resolve to the right website: >>>> >>>> 1: I setup one upstream server and accessed it through proxy_pass from >>>> both server definitions: >>>> >>>> upstream 4d_webclient{ >>>> server 127.0.0.1:8010; >>>> } >>>> >>>> server { >>>> listen 80; >>>> server_name name1.domain.com; >>>> >>>> location / { >>>> root /location_1 >>>> proxy_pass http://4d_webclient; >>>> ... >>>> } >>>> } >>>> >>>> server { >>>> listen 80; >>>> server_name name2.domain.com; >>>> >>>> location / { >>>> root /location_2 >>>> proxy_pass http://4d_webclient; >>>> ... >>>> } >>>> } >>>> >>>> Please note that I'm just trying to get the reverse proxy to work. Once >> I >>>> do that, I'll add SSL requirements, and all the necessary rewrites to >> make >>>> sure people are redirected to our secured interface. >>>> >>>> The second way I did it was to create a different upstream for each >>>> website, using the DNS names for each, and then calling the appropriate >>>> upstream proxy from each server definition: >>>> >>>> upstream name1_server{ >>>> server name1.domain.com:8010; >>>> } >>>> >>>> upstream name2_server{ >>>> server name2.domain.com:8010; >>>> } >>>> >>>> ... (the same as above, except replacing 4d_webclient with >> name1/2_server >>>> at proxy_pass) >>>> >>>> Both ways gave the same results. After restarting my Web Client and >> nginx >>>> (just to make sure I start from a clean slate), both name1.domain.comand >>>> name2.domain.com resolve to the name1:domain.com:8010 website. However, >>>> if I go to name2.domain.com:8010, then both name1.domain.com and name >>>> 2.domain.com will resolve to that website. Going to >> name1.domain.com:8010 then >>>> causes both portless addresses to resolve there, until I visit >>>> name2.domain.com:8010 directly again. >>>> >>>> Obviously, I don't understand the relationship between how nginx deals >>>> with upstream declarations and how that passes along to Active4D. Any >> help >>>> would be appreciated. >>>> >>>> Doug >>>> >>> _______________________________________________ >>> Active4D-dev mailing list >>> Active4D-dev@aparajitaworld.com >>> http://list.aparajitaworld.com/listinfo/active4d-dev >>> Archives: http://active4d-nabble.aparajitaworld.com/ >> >> _______________________________________________ >> Active4D-dev mailing list >> Active4D-dev@aparajitaworld.com >> http://list.aparajitaworld.com/listinfo/active4d-dev >> Archives: http://active4d-nabble.aparajitaworld.com/ > _______________________________________________ > Active4D-dev mailing list > Active4D-dev@aparajitaworld.com > http://list.aparajitaworld.com/listinfo/active4d-dev > Archives: http://active4d-nabble.aparajitaworld.com/ _______________________________________________ Active4D-dev mailing list Active4D-dev@aparajitaworld.com http://list.aparajitaworld.com/listinfo/active4d-dev Archives: http://active4d-nabble.aparajitaworld.com/