nginx в пути прокси докера к поддомену - PullRequest
0 голосов
/ 19 октября 2019

Я хочу перенаправить все запросы, сделанные для:

www.domain.com / api / whaterver / приходит / рядом с -> api . domain.com/whwhat/comes/next

Причина в том, чтобы браузер CORS для www.domain.com не обращался к api.domain.com

Вероятно, стоит упомянуть, что nginxработает в контейнере Docker.

Я пытаюсь выполнить с помощью блока местоположения ниже, но это не удается:

server {
listen 8443 ssl;
server_name domain.com www.domain.com;
index index.php index.html;
root /var/www/base/public;

location ~ ^/api/(.*)$ {
    proxy_set_header Host api.domain.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass https://api.domain.com/$1;
}

ssl_certificate /etc/nginx/ssl/nginx.cert;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_session_timeout         5m;
ssl_protocols               SSLv2 SSLv3 TLSv1;
ssl_ciphers                 HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers   on;

include /etc/nginx/conf.d/common.conf;
}

1 Ответ

0 голосов
/ 20 октября 2019

Спасибо Ивану за то, что он указал мне правильное направление.

Для распознавателя внутри контейнера Docker следует использовать встроенный DNS-сервер Docker по адресу 127.0.0.11 с отключенной директивой ipv6:

server {
    listen 8443 ssl;
    server_name domain.com www.domain.com;
    index index.php index.html;
    root /var/www/base/public;

    location ~ ^/api/(.*)$ {
        resolver 127.0.0.11 ipv6=off;
        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_pass https://api.domain.com/$1;
    }

}
...