Hello,
Out Config-File is:
server {
listen xxx.xxx.xxx.xxx:80;
server_name domain.foobar.org;
access_log
/var/www/html/domain.foobar.org/logs/nginx_domain.foobar.org_access.log
main;
location / {
proxy_pass
http://xxx.xxx.xxx.xxx:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Referer
$http_referer;
proxy_set_header Accept-Language
$http_accept_language;
client_max_body_size 64m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_cache STATIC;
proxy_cache_valid 200 30m;
proxy_cache_valid any 1m;
proxy_cache_use_stale error timeout
invalid_header updating http_500 http_502 http_503 http_504;
}
}
As you can see, we have already set the parameter proxy_set_header. The
problem occurs randomly, not all the time. When the problem occurs, we
got the apache server startpage with the servers hostname.
Maxim D. wrote in post #1040185:
Hello!
On Tue, Jan 10, 2012 at 09:42:45AM +0100, Maik U. wrote:
Hy,
We have that problem, that a site is not reachable throught nginx with
the domain name (for example www.foobar.org), even the websites are
reachable without nginx directly to apache.
This problem is not time specific, so that we have no solution at this
moment.
What is the problem here?
Most likely you are using wrong config.
By default nginx will use hostname as specified in proxy_pass
directive, i.e.
proxy_pass http://127.0.0.1:8080;
will generate request with Host header set to “127.0.0.1:8080”,
not to “www.foobar.org”. Your backend server won’t recognize it
if it’s configured to serve many virtual hosts, and
“www.foobar.org” is just one of them.
To preserve the hostname from the original request (as sent to
nginx server), use
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
Maxim D.