У меня есть файл сервера 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 со всеми соответствующими сертификатами и т. д., но определять разные местоположения/совпадения в разных файлах?