4

Я новичок в nginx. Я хочу переписать

feature-1234.mydomain.com/xyz?foo=bar

в

docker-feature-1234:9000/xyz?foo=bar

с параметрами запроса.

Я использую официальный образ докера nginx. Каким должен быть мой файл nginx.conf?

РЕДАКТИРОВАТЬ: «Feature-1234» является переменной, поэтому:

feature-5678.mydomain.com

должен служить

docker-feature-5678:9000

2 ответа2

1

Объединив ответы, я нашел решение.

https://serverfault.com/questions/388552/nginx-sub-domain-proxy-pass

https://stackoverflow.com/questions/35744650/docker-network-nginx-resolver

https://stackoverflow.com/questions/41766195/nginx-emerg-server-directive-is-not-allowed-here

nginx.conf:

events {
}

http {
  server {
    listen 80;
    server_name ~(.*).test.go;

    location / {
      if ($host ~* ^([a-zA-Z0-9-]+)\.test\.go$) {
        set $proxyhost docker-$1:9000;
      }

      resolver 127.0.0.11 ipv6=off;
      proxy_pass http://$proxyhost;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;

    }
  }
}

Спасибо

0

site.conf

отключение сервера;

map $ http_upgrade $ connection_upgrade {обновление по умолчанию; «»
близко; }

сервер {

установить $ access_log 'var/log/nginx/my-site.access.log'; установить $ error_log 'var/log/nginx/my-site.error.log';

слушать 80; имя_сервера feature-1234.mydomain.com;

access_log / $ access_log; error_log / $ error_log;

место нахождения / {

proxy_pass docker-feature-1234:9000;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;

if ($uri != '/') { expires 30d;}
access_log /$access_log;

} }

наклеить

нажмите /etc/nginx/sites-available/site.conf

следующий

ln -s /etc/nginx/sites-available/site.conf /etc /nginx /sites-enabled

следующий

сервис nginx reload

если у вас нет root-прав, добавьте sudo в начало команд

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .