The next thing that comes to mind is your IPv6 virtual host. None of my
webservers currently have IPv6 enabled, so I can't test this.
Try to force the connection to use IPv4 or IPv6 and see if that makes a
difference.

You can try running httpd -S on the webserver to get a list of virtual
hosts by IP address which may also give you an idea of why a particular
virtual host is selected.

- Y

On Sun, Feb 5, 2017 at 9:10 PM, Spork Schivago <sporkschiv...@gmail.com>
wrote:

> Okay.   I've been able to reproduce the results.   I removed the two
> ServerAlias www.jetbbs.com entries (one for port 80 and the other for
> port 443).   To prevent confusion, I'll tell my hostnames.
>
> Eugene: My local machine that I use to surf the internet
> Franklin: My VPS that runs Apache.
>
> on Franklin, I run dig www.jetbbs.com, I see:
>
> dig www.jetbbs.com
>
> ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> www.example.com
> ;; global options: +cmd
> ;; Got answer:
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17479
> ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
>
> ;; OPT PSEUDOSECTION:
> ; EDNS: version: 0, flags:; udp: 4096
> ;; QUESTION SECTION:
> ;www.jetbbs.com. IN A
>
> ;; ANSWER SECTION:
> www.jetbbs.com. 14120 IN A 45.33.78.219
>
> ;; Query time: 0 msec
> ;; SERVER: 96.126.106.5#53(96.126.106.5)
> ;; WHEN: Sun Feb 05 20:59:22 EST 2017
> ;; MSG SIZE  rcvd: 59
>
>
>
>
> On Eugene (my local machine), I run dig www.jetbbs.com, I see:
> dig www.jetbbs.com
>
> ; <<>> DiG 9.10.4-P5 <<>> www.jetbbs.com
> ;; global options: +cmd
> ;; Got answer:
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34470
> ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
>
> ;; OPT PSEUDOSECTION:
> ; EDNS: version: 0, flags:; udp: 512
> ;; QUESTION SECTION:
> ;www.jetbbs.com. IN A
>
> ;; ANSWER SECTION:
> www.jetbbs.com. 14399 IN A 45.33.78.219
>
> ;; Query time: 132 msec
> ;; SERVER: 8.8.8.8#53(8.8.8.8)
> ;; WHEN: Sun Feb 05 21:01:02 EST 2017
> ;; MSG SIZE  rcvd: 59
>
>
>
>
> Here's what my /etc/hosts file looks like on Franklin:
> # The following lines are desirable for IPv4 capable hosts
> 127.0.0.1 localhost localhost.localdomain localhost4
> localhost4.localdomain4
>
> # The following lines are desirable for IPv6 capable hosts
> ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
> 2600:3c03::f03c:91ff:fee0:11b4 franklin
> 45.33.78.219 franklin.jetbbs.com franklin
>
>
>
> Here's what my /etc/hosts file looks like on Eugene (my local machine):
> # hosts         This file describes a number of hostname-to-address
> #               mappings for the TCP/IP subsystem.  It is mostly
> #               used at boot time, when no name servers are running.
> #               On small systems, this file can be used instead of a
> #               "named" name server.
> # Syntax:
> # IP-Address  Full-Qualified-Hostname  Short-Hostname
> 127.0.0.1 localhost
> # special IPv6 addresses
> ::1             localhost ipv6-localhost ipv6-loopback
> fe00::0         ipv6-localnet
> ff00::0         ipv6-mcastprefix
> ff02::1         ipv6-allnodes
> ff02::2         ipv6-allrouters
> ff02::3         ipv6-allhosts
> 192.168.2.5 eugene eugene
>
>
>
>
> I setup two test files that look like this:
> /home/<username>/public_html/.well-known/test.html
>    www.jetbbs.com and jetbbs.com test
>
> /var/www/html/.well-known/test.html
>    franklin.jetbbs.com test
>
>
> On Franklin, I run curl www.jetbbs.com/.well-known/test.html and see this:
> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
> <html><head>
> <title>301 Moved Permanently</title>
> </head><body>
> <h1>Moved Permanently</h1>
> <p>The document has moved <a href="https://www.jetbbs.com/.
> well-known/test.html">here</a>.</p>
> </body></html>
>
>
> So I run curl https://www.jetbbs.com/.well-known/test.html and see this:
> jetbbs.com and www.jetbbs.com test
>
>
> But on Eugene (my local machine), and everyone elses machine, when I run:
> curl www.jetbbs.com/.well-known/test.html, I see:
>   franklin.jetbbs.com test
>
> I still don't fully understand why I'm seeing different results based on
> whether I run the command on the server running Apache or whether I run it
> on another machine.   There's no www.jetbbs.com entry in the hosts file.
>   Is there some other place that might make it so when I'm logged into
> Franklin, when I type www.jetbbs.com, something converts it to the IP
> address of my server?   If so, then I understand what's going on, if not,
> I'm still confused.
>
> On Sun, Feb 5, 2017 at 8:27 PM, Yehuda Katz <yeh...@ymkatz.net> wrote:
>
>> If you want to provide your whole config file, I suggest creating a gist
>> or pastebin post.
>> You should also just run dig or host on the domain name from both
>> machines and make sure you get the same results.
>>
>> - Y
>>
>> On Sun, Feb 5, 2017 at 8:25 PM, Spork Schivago <sporkschiv...@gmail.com>
>> wrote:
>>
>>> So you don't think it's a bug in Apache?   Okay.   I only have two IP
>>> addresses.   One is an IPv4 IP address, one is an IPv6 IP address.   When I
>>> get some more time, I'll try some experimenting and see if I can duplicate
>>> the issue.   If it's okay with the mailing list, I'd like to provide a copy
>>> of my entire Apache configuration file.   I'd really like to try and
>>> understand what exactly happened.   There was no ServerName
>>> www.example.com anywhere in the Apache config file, there was no
>>> ServerAlias www.example.com in the Apache config file.   I think I
>>> might understand what you're saying.
>>>
>>> On the remote server, when I ran curl, maybe it converted
>>> www.example.com to the IP address, so instead of going to
>>> www.example.com, I was actually going to 192.168.2.2, for example.
>>> I've looked at my hosts file, I have an entry for hostname.domain.com,
>>> but nothing for www.domain.com.
>>>
>>> On Sun, Feb 5, 2017 at 7:38 PM, Yehuda Katz <yeh...@ymkatz.net> wrote:
>>>
>>>> This is a common enough setup that it is unlikely to be a bug and more
>>>> likely to be a configuration error.
>>>>
>>>> cPanel creates VirtualHosts using the IP address of the server. For
>>>> example, I have a cPanel server running behind NAT, so there are two
>>>> default virtual hosts:
>>>>
>>>>> <VirtualHost 192.168.118.82:80>
>>>>>     ServerName 192.168.118.82
>>>>>     DocumentRoot /var/www/html
>>>>>     ServerAdmin hostmas...@example.com
>>>>>     <IfModule suphp_module>
>>>>>         suPHP_UserGroup nobody nobody
>>>>>     </IfModule>
>>>>> </VirtualHost>
>>>>> <VirtualHost *>
>>>>>     ServerName ph04.example.com
>>>>>     DocumentRoot /var/www/html
>>>>>     ServerAdmin hostmas...@example.com
>>>>>     <IfModule suphp_module>
>>>>>         suPHP_UserGroup nobody nobody
>>>>>     </IfModule>
>>>>> </VirtualHost>
>>>>
>>>>
>>>> The actual account Virtual Host uses the IP address in the VirtualHost
>>>> block, so the default that would be selected would be the one with the IP
>>>> address:
>>>>
>>>> <VirtualHost 192.168.118.82:80>
>>>>>   ServerName example.net
>>>>>   DocumentRoot /home2/example_net/public_html
>>>>>   ServerAdmin webmas...@example.net
>>>>
>>>>
>>>> would fall back to the first Virtual Host because it is more specific.
>>>>
>>>> If there is a different IP for the website on one of your systems - for
>>>> example in the hosts file - that would cause it to all back to a different
>>>> Virtual Host than you expect because the IP doesn't match.
>>>>
>>>> - Y
>>>>
>>>>
>>>> On Sun, Feb 5, 2017 at 6:44 PM, Spork Schivago <sporkschiv...@gmail.com
>>>> > wrote:
>>>>
>>>>> Yehuda,
>>>>>
>>>>> Could you please explain what you mean in a little more detail?   I
>>>>> only have one server running Apache and I only have that one DNS server.
>>>>> I don't really see how my DNS server could be setup in such away where it
>>>>> affects Apache's DocumentRoot's directive...
>>>>>
>>>>> When I was logged into the remote server running Apache, Apache was
>>>>> serving files from a different directory than it was when I was accessing
>>>>> Apache via my local machine.   I hope that makes sense.   Looking at my
>>>>> Apache conf log, when I was accessing Apache from my local machine, it was
>>>>> acting properly, because I didn't have a VirtualHost setup for the www
>>>>> host, but when I was accessing Apache from the server that was running
>>>>> Apache, it was serving files from the domain.com VirtualHost
>>>>> directory.    ServerAliases have been commented out.   To my knowledge,
>>>>> this should not happen.
>>>>>
>>>>> I can probably regenerate it.   I've restarted the server and
>>>>> everything, but I was thinking maybe this was some sort of bug and not a
>>>>> misconfigured server.
>>>>>
>>>>> On Sun, Feb 5, 2017 at 4:47 PM, Yehuda Katz <yeh...@ymkatz.net> wrote:
>>>>>
>>>>>> Did you check your DNS to make sure both systems are resolving to the
>>>>>> same IP address?
>>>>>>
>>>>>> - Y
>>>>>>
>>>>>>
>>>>>> On Thu, Jan 26, 2017 at 3:31 PM, Spork Schivago <
>>>>>> sporkschiv...@gmail.com> wrote:
>>>>>>
>>>>>>> I have a bit of a weird problem that I'd like some help tracking
>>>>>>> down.   I'm pretty sure it's something with Apache.   In my Apache 
>>>>>>> 2.4.25
>>>>>>> (cPanel) config file, I have the ServerAliases disabled.   There's a
>>>>>>> "catch-all" entry for unbound IPs, that look like this:
>>>>>>>
>>>>>>> <VirtualHost *>
>>>>>>>     ServerName myhostname.mydomain.com
>>>>>>>     DocumentRoot /var/www/html
>>>>>>>     ServerAdmin myrealem...@someplace.com
>>>>>>>
>>>>>>>     <IfModule suphp_module>
>>>>>>>         suPHP_UserGroup nobody nobody
>>>>>>>     </IfModule>
>>>>>>>
>>>>>>> </VirtualHost>
>>>>>>>
>>>>>>> Further down, I have a VirtualHost entry for mydomain.com, which
>>>>>>> has a DocumentRoot of /home/<myusername>/public_html
>>>>>>>
>>>>>>> I setup a test file, /home/<myusername>/public_html
>>>>>>> /.well-known/acme-challenge/test that says www.mydomain.com-test.
>>>>>>>
>>>>>>> Then I setup another test file, 
>>>>>>> /var/www/html/.well-known/acme-challenge/test
>>>>>>> that says myhostname.mydomain.com-test
>>>>>>>
>>>>>>> I have .htaccess files in /home/<myusername>/public_html that
>>>>>>> redirect all traffic to secure ports.   I have cPanel installed and have
>>>>>>> manually setup subdomains for the various cPanel stuff.
>>>>>>>
>>>>>>> Anyway, when I run the following command on the remote server:
>>>>>>>    curl http://www.mydomain.com/.well-known/acme-challenge/test
>>>>>>>
>>>>>>> I see the 301 redirect.   When I run:
>>>>>>>    curl https://www.mydomain.com/.well-known/acme-challenge/test
>>>>>>> I see the:
>>>>>>>    www.mydomain.com-test
>>>>>>>
>>>>>>>
>>>>>>> However, when I run those commands on my local Linux box instead of
>>>>>>> the remote server that's running Apache, I see:
>>>>>>>   curl http://www.mydomain.com/.well-known/acme-challenge/test
>>>>>>>   myhostname.mydomain-test
>>>>>>>
>>>>>>>   curl https://www.mydomain.com/.well-known/acme-challenge/test
>>>>>>>   www.mydomain.com-test
>>>>>>>
>>>>>>>
>>>>>>> It's not just curl, lynx, the command line web browser, does the
>>>>>>> same thing.   On the remote computer that's running Apache, for some
>>>>>>> reason, I'm seeing different results than I am when I run the commands 
>>>>>>> on
>>>>>>> my local Linux box.
>>>>>>>
>>>>>>> Any idea what's going on?
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>> Sincerely,
>>>>>>> Ken Swarthout
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to