NGINX - 具有不同根域的位置 {} slug

NGINX - 具有不同根域的位置 {} slug

我目前有一个.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该位置块中也有一个。

相关内容