我目前有一个.conf
包含etc/nginx/sites-available
一堆位置条目的文件。其中一些位置条目被设置为特定端口的反向代理。但是,我在添加仅指向目录的位置条目时遇到问题。
server {
listen 443 ssl;
server_name sub.domain.com www.sub.domain.com;
root /var/www/html;
charset utf-8;
access_log /var/log/nginx/sub.domain.com-access.log combined;
error_log /var/log/nginx/sub.domain.com.log error;
ssl_certificate /etc/letsencrypt/live/sub.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sub.domain.com/privkey.pem;
location /site1 {
proxy_pass http://127.0.0.1:7777;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /site2 {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /site3 {
root /opt/site3;
index index.html;
allow all;
}
}
现在,我无法sub.domain.com/site3
提供 的内容/opt/site3
。
任何有关如何正确使用location {}
条目与代理反向并排的帮助将不胜感激!谢谢。
答案1
尝试与子位置一起使用root
意味着它将尝试$root$uri
,在您的情况下会变成/opt/site3/site3
.
您可以执行您所做的操作并使用root
,以便根目录是一个文件夹前您尝试访问的文件夹。然而,你不需要去做这个。
尝试使用alias /opt/site3;
替代;这应该如果您设置了索引字段,则可以工作并访问正确的位置,并且如有必要,try_files
该位置块中也有一个。