Измените параметр http_host fastcgi с помощью nginx

Контекст: у меня есть приложение, работающее в данном домене. Но в некоторых случаях мне нужно запускать его под другим доменом, чем тот, который он ожидал (я также потенциально меняю порт).

Я пытаюсь настроить fastcgi_param HTTP_HOST, но приложение все равно получает «настоящий».

Вот что я пробовал в качестве конфигурации:

location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;

    fastcgi_pass php:9000;
    fastcgi_index app.php;
    fastcgi_param SCRIPT_FILENAME /app/web$fastcgi_script_name;
    fastcgi_intercept_errors on;
    include fastcgi_params;
    fastcgi_param SERVER_NAME my-app.com;
    fastcgi_param HTTP_HOST   my-app.com;
}

Возникло много проблем:

  1. Порт не указан в HTTP_HOST, есть ли способ установить только хост? (возможно, установить переменную, которая будет использоваться для определения параметра)
  2. Это вообще не работает, наконец, "my-app.com" не передается; почему?

Примечание: это основано на образе докера nginx.

0
задан 1 January 2019 в 18:40
1 ответ

Обнаружил проблему:

У меня много серверных частей в моей конфигурации nginx. Я не упомянул об этом, потому что я думал, что nginx берет последнее, если нет совпадений. Но на самом деле это полная противоположность. Я поставил правую серверную часть первой, и она работает.

0
ответ дан 24 November 2019 в 01:22

Теги

Похожие вопросы