Nginx“上的不同根文件夹”;地点“;指令=403禁止的错误
我是一名网络开发者。当我开始开发一个网站时,我的客户的域必须指向另一台服务器,直到我正在开发的网站准备好为止,我以前做的是: 1) 将他们的域添加到我的服务器 2) 编辑我的主机文件并将域指向我的服务器的IP 上述设置的问题是,客户端看不到我正在开发的网站,所以我创建了一个域来临时托管他们的网站,直到他们准备好。因此:Nginx“上的不同根文件夹”;地点“;指令=403禁止的错误,nginx,Nginx,我是一名网络开发者。当我开始开发一个网站时,我的客户的域必须指向另一台服务器,直到我正在开发的网站准备好为止,我以前做的是: 1) 将他们的域添加到我的服务器 2) 编辑我的主机文件并将域指向我的服务器的IP 上述设置的问题是,客户端看不到我正在开发的网站,所以我创建了一个域来临时托管他们的网站,直到他们准备好。因此: mydomain.com/client1 mydomain.com/client2 mydomain.com/client3 假设我正在为xyz.com开发一个网站。为了避免在
mydomain.com/client1
mydomain.com/client2
mydomain.com/client3
假设我正在为xyz.com开发一个网站。为了避免在将网站从mydomain.com/xyz传输到xyz.com(也在我的服务器中)时进行重大更改,我希望mydomain.com/client1加载xyz根文件夹中的文件。这种将mydomain.com/xyz传输到xyz.com的方式与更改dns记录一样简单
所以,这是我在xyz.com的虚拟主机:
server {
error_log /var/log/nginx/vhost-error_log warn;
listen 1.1.1.1:80;
server_name mydomain.com www.mydomain.com;
access_log /usr/local/apache/domlogs/mydomain.com-bytes_log bytes_log;
access_log /usr/local/apache/domlogs/mydomain.com combined;
root /home/mydomain/public_html;
location ^~ /xyz {
root /home/xyz/public_html;
}
location / {
location ~.*\.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|html|htm|txt|js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso)$ {
expires 1d;
try_files $uri @backend;
}
error_page 405 = @backend;
add_header X-Cache "HIT from Backend";
proxy_pass http://1.1.1.1:8081;
include proxy.inc;
}
location @backend {
internal;
proxy_pass http://1.1.1.1:8081;
include proxy.inc;
}
location ~ .*\.(php|jsp|cgi|pl|py)?$ {
proxy_pass http://1.1.1.1:8081;
include proxy.inc;
}
location ~ /\.ht {
deny all;
}
}
看起来很好,但当我访问它时,我得到以下信息:
我也试过使用alias,但没用。使用和不使用“^~”进行了尝试
我做错了什么?您没有定义任何索引,因此我假设服务器正在尝试列出文件夹的内容,这是禁止的,因为您不允许自动索引 尝试添加
index index.html index.whatever;
在/xyz
块内
或者,如果您只想列出文件夹内容,请使用
autoindex on;
正确答案是
您应该将这些行添加到服务器或位置边距
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
除此之外,您应该增加散列大小,添加这两行
proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;
谢谢你的回答。我这样做了,重新启动了nginx,但仍然出现错误403:/