Так где же все-таки настраивать: nginx.conf, conf.d, sites-available или sites-enabled?

Может мне кто-то объяснить. Почему все по разному делают? Я за последние 2 дня нашел и прочел штук 10 разных туториалов, где была одна и та же простая задача - запуск простейшего приложение node.js с nginx.
И в этих туториалах все решают одну и ту же задачу по разному - по сути один и тот же конфиг пишут в 3 разных места: nginx.conf, sites-available или sites-enabled.
Что это за безумие? Так как же правильно?
Где конфигурировать nginx будет правильно? Конфиг типа:

server {
    listen 80;

    server_name example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}


+ позже будет SSL.

апд. а еще встречал и conf.d, забыл. Т.е. 4 способа, что-ли, сделать одно и то же?

Кажется понятно стало. В sites-enabled создаются симлинки из sites-available. Они в свою очередь инклудятся в nginx.conf. Т.е. можно и вручную там все прописать, но удобнее так, особенно когда много виртуальных хостов. Правда вопрос нафиг тогда conf.d остается открытым.
  • Вопрос задан
  • 26678 просмотров
Решения вопроса 3
SerafimArts
@SerafimArts
Senior Notepad Reader
Как верно пояснил выше Алексей - так и делают обычно, чуть-чуть дополню (расширю его пояснения):
1. nginx.conf - общие конфиги всего сервера и всех обслуживаемых сайтов под ним, там он заодно подключает всё, что лежит в site-enabled
2. site-available - конфиги отдельных приложений, туда можно заткнуть один для вебдава, другой для вебсокетов, третий для сайта, четвёртый для другого сайта, а пятый вообще для php-fpm и т.д.
3. sites-enabled - т.к. тут просто включённые сайты - сюда складываются симлинки из site-available, для того, чтобы быстро включить, переключить или отключить какой-то конфиг. Что-то вроде горячей замены.

По-хорошему делается всё именно так.
Ответ написан
Комментировать
prolis
@prolis
Независимый разработчик BPM
Это старые директории, с некоторых пор рекомендуют импорт только из conf.d
https://www.nginx.com/resources/admin-guide/config...
Ответ написан
yarkov
@yarkov
Помог ответ? Отметь решением.
У меня так:
  1. nginx.conf - основной конфиг. Указываем настройки ssl, gzip и прочего, что одинаково для всех хостов.
  2. sites-available - конфиги хостов со своими настройками
  3. sites-enabled - ссылки на конфиги из sites-available
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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