Есть ли способ разделить директивы конфигурации между двумя server {}
блоками nginx ? Я бы хотел избежать дублирования правил, так как HTTPS и HTTP-контент моего сайта обслуживаются с одинаковыми настройками.
В настоящее время это так:
server {
listen 80;
...
}
server {
listen 443;
ssl on; # etc.
...
}
Могу ли я сделать что-то вроде:
server {
listen 80, 443;
...
if(port == 443) {
ssl on; #etc
}
}
Чтобы уточнить принятый ответ, нужно опустить
и вам просто нужно следующее для версии nginx после 0.8.21
Ссылка:
Nginx Docs - настройка одного HTTP / HTTPS-сервера
источник
Я не знаю, как вы предлагаете, но, конечно, есть простой и понятный способ.
Переместите общие настройки сервера в отдельный файл, то есть «serverFoo.conf», а затем
include
в отдельныеserver {}
блоки, например:источник
server_name
listen 443 ssl;
сейчас один.listen
строки не интерпретируются правильно, но перемещение их по отдельностиserver{}
исправляет это.Расширяя уже полезные ответы, вот более полный пример:
источник
Просто чтобы добавить в пост Игоря / Джодера, если вы слушаете конкретный IP, вы можете использовать:
источник