I'm using Apache HTTPD in front of Apache Tomcat with the following virtual host:
$ cat /etc/apache2/sites-enabled/onlinetaskboarddotcom
ServerAdmin comented@out.com
ServerName www.onlinetaskboard.com
ServerAlias onlinetaskboard.com
DocumentRoot /home/ubuntu/www/apache/onlinetaskboarddotcom
ProxyPass / http://www.onlinetaskboard.com:8080/
ProxyPassReverse / http://www.onlinetaskboard.com:8080/
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
The URLs without www
subdomain like onlinetaskboard.com/login
and onlinetaskboard.com/someOtherValidPage
work fine, however once I include the www
subdomain like www.onlinetaskboard.com
, then I get a 404 error in some browsers like Chrome.
Here are the request/response headers which I observed in Chrome.
With www
subdomain:
Request:
Request URL:http://www.onlinetaskboard.com/
Request Method:GET
Status Code:404 Not Found
Request headers:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:JSESSIONID=DE44F60835D23E6AB3CC2A2E8B9D6279
Host:www.onlinetaskboard.com
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36
Response headers:
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:377
Content-Type:text/html;charset=ISO-8859-1
Date:Thu, 14 Nov 2013 23:39:24 GMT
Keep-Alive:timeout=5, max=99
Server:Apache-Coyote/1.1
Vary:Accept-Encoding
X-Pad:avoid browser bug
And without the www
subdomain:
Request:
Request URL:http://onlinetaskboard.com/
Request Method:GET
Status Code:302 Found
Request Headers:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:JSESSIONID=36D1DED5A3F7B5E185FE5D5EDD4457FC
Host:onlinetaskboard.com
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36
Response headers:
Connection:Keep-Alive
Content-Length:0
Date:Fri, 15 Nov 2013 00:04:33 GMT
Keep-Alive:timeout=5, max=100
Location:http://onlinetaskboard.com/login
Server:Apache-Coyote/1.1
How is this caused and how can I solve it?
Answer
Is there something validating the URL on the other side? What happens if you just go to ip.address:8080 do you get a 404? I am just wondering if it is something tomcat could be doing.
Also, if you add
"ProxyPreserveHost On"
this will keep the request header so you can pass it to tomcat.
Also, why do you have all of this? cgi-bin and such:
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Comments
Post a Comment