Linux

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

  • June 13, 2018

.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 {}條目與代理反向的幫助將不勝感激!謝謝。

嘗試與子位置一起使用root將意味著它將嘗試$root$uri,在您的情況下變為/opt/site3/site3.

您可以執行您所做並使用的操作root,以便根目錄是您嘗試訪問的文件夾之前的文件夾。但是,您不需要這樣做。

嘗試alias /opt/site3;改用;如果您設置了索引欄位,並且如果有必要在該位置塊中也有一個,這應該可以工作並訪問正確的位置。try_files

引用自:https://unix.stackexchange.com/questions/449626