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/

Reply via email to