有这样几个问题,但最相似的是没有答案,其余的都是混杂因素。 以前的工作很好的nginx的部署是redirect而不是代理。 nginx.conf的相关部分看起来像这样;
location /timesheets/ { gzip on; gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_proxied any; gzip_min_length 1000; gzip_comp_level 2; gzip_http_version 1.0; gzip_buffers 16 8k; gunzip on; gzip_static on; # Disable for IE < 6 because there are some known problems gzip_disable "MSIE [1-6].(?!.*SV1)"; # Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6 gzip_vary on; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://timesheetserver.fqdn.com.au:8216$request_uri; proxy_intercept_errors on; }
当在server_name部分的URL中访问服务器时,它们在端口8216的时间表服务器上的内容应该被代理给它们。 由于某些原因,它使用302代理服务器进行回复,并且由于用户无法访问8216端口,所以失败了。 这会导致什么?
更新:如果index.html没有结束,那么它是302到proxy_pass服务器。 它工作正常,如果index.html手动追加。 我已经添加了一个索引index.html; 指令,但它似乎并没有处理该文件被closures – 我该如何解决?
location /timesheets/ { # http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver resolver 127.0.0.1 valid=30s ipv6=off; # http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver_timeout # give up and response error resolver_timeout 5s; ### your existing configuration :-) }
反向代理使用FQDN(完全合格的域名)比timesheetserver服务器更好。
Ref: http : //nginx.org/en/docs/http/ngx_http_core_module.html#resolver