Nginx 抓取在标头中发送的动态子域

问题描述 投票:0回答:0

我对 proxy_pass 和动态子域有疑问。

在我的服务器上,我有一个 site_block 看起来像这样:

upstream mydockersite{
        server 127.0.0.1:8081;
}
server {
        listen 80;

        server_name ~^review-+(?<subdomain>.+)\.website\.com;

         location / {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_cache_bypass $http_upgrade;

                proxy_pass http://mydockersite;
        }

}

这可以很好地将传入请求重定向到我的服务器到我的 docker 容器,它也是一个 NGINX 服务器。

例如:

http://review-xyz.website.com

http://review-somedynamicsubdomain.website.com

http://review-anothersubdomain.website.com

review-
部分是固定的
<subdomain>
部分可以是任何东西 无论如何
website.com
是我的领域。

我看到整个请求域可以通过我设置的标头传递到我的 docker 容器中的服务器

proxy_set_header Host $host;
但我不知道如何在我的 docker nginx 服务器的配置中获取它们并重定向到请求的
 root
文件夹。

我的 docker 容器中的 nginx 服务器的配置如下所示:

server {
    listen 80;
    index index.php index.html;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    
    ######## MY PROBLEM IS HERE ########
    root /home/site_reviews/main; 
    ####################################        

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }
}

在线:

root /home/site_reviews/main;
我需要用
main
<subdomain>
部分替换
proxy_pass

部分

所以提供网站服务的

root
文件夹将是子域

例如,如果我有这样的 URL:

review-x34kk4ids.website.com
, 然后我的docker容器nginx应该提供docker文件夹
x34kk4ids
中的文件夹
/home/site_reviews/

docker nginx nginx-reverse-proxy
© www.soinside.com 2019 - 2024. All rights reserved.