Рейтинг:0

Nginx обслуживает две службы с одного порта из двух файлов?

флаг cn

У меня есть файл сервера nginx, который обслуживает некоторый статический контент, выглядит примерно так:

сервер {
    слушать 443 ssl;
    ssl_certificate /etc/letsencrypt/live/this_host/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/this_host/privkey.pem;
    имя_сервера статическое_содержимое;

    # Правильная ротация ключей шифрования сессионного билета не реализована, поэтому
    # полностью отключить сеансовые билеты
    ssl_session_tickets выключен;

    # Учитывая, что предполагаемые клиентские устройства относительно современны, нет необходимости
    # поддержка небезопасных протоколов
    ssl_протоколы TLSv1.3;
    ssl_prefer_server_ciphers выключен;

    расположение /двоичные файлы/ {
        auth_basic "минимальная защита";
        auth_basic_user_file /etc/nginx/auth/.htpasswd;
        корень /var/www/static/;
    }

    location = /apple-app-site-association {
        псевдоним /var/www/static/apple-app-site-association/apple-app-site-association;
        типы { } default_type "тип контента: приложение/json";
    }
}

Я повторно использую это на рабочем сервере и промежуточном сервере. На промежуточном сервере я также хочу использовать API. Если я просто добавлю другое место в:

расположение ^~ /my_cool_api/v1/ {
    proxy_pass http://localhost:4000/my_cool_api/v1/;
}

Но тогда у меня есть разные файлы сервера для разных подач, и в этот момент он также плохо называется «static_content». Я хотел бы сделать его более модульным, поэтому я попытался оставить первый файл в покое и добавить второй файл на промежуточный сервер:

сервер {
    слушать 443 ssl;
    ssl_certificate /etc/letsencrypt/live/this_host/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/this_host/privkey.pem;
    имя_сервера my_cool_api;

    # Правильная ротация ключей шифрования сессионного билета не реализована, поэтому
    # полностью отключить сеансовые билеты
    ssl_session_tickets выключен;

    # Учитывая, что предполагаемые клиентские устройства относительно современны, нет необходимости
    # поддержка небезопасных протоколов
    ssl_протоколы TLSv1.3;
    ssl_prefer_server_ciphers выключен;

    расположение ^~ /accumulus_twig/v1/ {
        proxy_pass http://localhost:4000/accumulus_twig/v1/;
    }
}

Однако это не работает. После того, как я свяжу два сайта с поддержкой сайтов, я просто заставлю API работать в этом случае, error.log показывает, что он не может найти (статические) файлы на /usr/доля/nginx/html/binaries/. Нет ли модульного способа иметь одно определение сервера на 443 со всеми соответствующими сертификатами и т. д., но определять разные местоположения/совпадения в разных файлах?

Рейтинг:0
флаг cn

Прочитав ответ на этот вопрос (Используйте «включить» в блоке сервера nginx, но где сохранить?), я понял, что могу выделить свои местоположения модульным образом с помощью включаемых файлов:

сервер {
    слушать 443 ssl;
    ssl_certificate /etc/letsencrypt/live/this_host/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/this_host/privkey.pem;
    имя_сервера https;

    # Правильная ротация ключей шифрования сессионного билета не реализована, поэтому
    # полностью отключить сеансовые билеты
    ssl_session_tickets выключен;

    # Учитывая, что предполагаемые клиентские устройства относительно современны, нет необходимости
    # поддержка небезопасных протоколов
    ssl_протоколы TLSv1.3;
    ssl_prefer_server_ciphers выключен;

    включить /etc/nginx/includes/*.location;
}

Затем можно добавить разные места для каждого файла документации.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.