nginx відсутній каталог доступних сайтів


190

Я встановив Nginx на Centos 6 і намагаюся налаштувати віртуальних хостів. Проблема, яку я маю, полягає в тому, що я не можу знайти /etc/nginx/sites-availableкаталог.

Чи потрібно щось зробити, щоб створити це? Я знаю, що Nginx працює і працює, тому що я можу переглядати його.


Якщо ви хочете розділити один великий файл конфігурації на більш дрібні, ви можете використовувати мій сценарій , щоб розділити його: stackoverflow.com/a/38635284/1069083
rubo77

Відповіді:


354

Ну, я думаю, що nginx сам по собі не має цього в своєму налаштуванні, тому що підтримуваний Ubuntu пакет робить це як умова імітувати налаштування Apache Debian. Ви можете створити його самостійно, якби хотіли наслідувати ту саму програму.

Створіть, /etc/nginx/sites-availableа /etc/nginx/sites-enabledпотім відредагуйте httpблок всередині /etc/nginx/nginx.confта додайте цей рядок

include /etc/nginx/sites-enabled/*;

Звичайно, усі файли знаходяться всередині sites-available, і ви створите для них символьне посилання все для тих, sites-enabledкого ви хочете включити.


23
У родичів RedHat (наприклад, Fedora та Centos) немає такої функції, як Debian / Ubuntu. Копіювати це легко, як сказав @Mohammad, однак відсутність хороших значень за замовчуванням бентежить для новачків.
MGP

36
Боже, я не можу сказати, скільки пошуків я зробив, щоб розібратися в цьому. Я використовую Amazon Linux AMI випуск 2014.03. Ці каталоги не створюються автоматично, якщо ви встановлюєте nginx з файлів rpm (будь то nginx 1.6.2 чи nginx 1.7.5), але багато прикладів конфігурації nginx посилаються на це ... змушуючи вас замислитися, чи ваш nginx встановлений правильно чи ні.
so_mv

1
Хороший спасибі, як щодо симпосилання? Чи правильний мій синтаксис? Схоже, це не може бути знайдено за допомогою оператора include.
нулі і ті

7
Я виправив це, почав свіжим і створив символьне посилання так: sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.confне впевнений, чому повний шлях змінив значення: /
нулі-і-ті

1
Дуже дякую. Вбудований nginx з джерела і не зрозумів, що це зробив ubuntu.
Шон Норвуд

66

Якщо ви віддаєте перевагу більш прямий підхід, який НЕ псується з символікою між, /etc/nginx/sites-availableі /etc/nginx/sites-enabledвиконайте наступне:

  1. Знайдіть файл nginx.conf. Ймовірно, в/etc/nginx/nginx.conf
  2. Знайдіть блок http.
  3. Десь у блоці http напишіть include /etc/nginx/conf.d/*.conf;Це повідомляє nginx витягувати будь-які файли в conf.dкаталозі, який закінчується .conf. (Я знаю: дивно, що каталог може мати .в ньому.)
  4. Створіть conf.dкаталог, якщо він ще не існує (по шляху на кроці 3). Обов’язково надайте йому правильні дозволи / права власності. Ймовірно, root або www-data.
  5. Перемістіть або скопіюйте окремі конфігураційні файли (як і у вас /etc/nginx/sites-available) у каталог conf.d.
  6. Перезавантажте або перезавантажте nginx.
  7. Їжте конус морозива.

Будь-які .confфайли, які ви введете в conf.dкаталог звідси і далі, стануть активними, доки ви перезавантажите / перезапустите nginx після.

Примітка. Ви можете використовувати метод conf.dі sites-enabled+ sites-availableодночасно, якщо бажаєте. Мені подобається тестувати на своїй коробці розробників, використовуючи conf.d. Відчуває себе швидше, ніж символізувати та нестимулювати.


13
Сенс символічного "безладу" полягає в тому, що ви можете зберігати конфігураційні файли та ще дуже легко відключати віртуальні хости. Якщо ви використовуєте свій підхід, вам доведеться перемістити файли з conf.d, коли ви хочете відключити сайт, який, на мою думку, не є менш брудним, ніж зручно видалити символьне посилання.
bviktor

@bviktor Я чую. Я фактично використовую обидва способи. Мені просто здалося, що більш важко [під час тестування конфігурацій] підстрибувати вперед і назад між доступними сайтами та сайтами з обмеженими можливостями. У своїй виробничій програмі я планую використовувати симлінк.
ліктьовий локомотив

1
Так, я погоджуюся, введення ln -s ../sites-available/...є досить стомлюючим при швидкому тестуванні матеріалів, але з часом це зручно і простіше в управлінні :)
bviktor

@bviktor Тож вдячний за можливість мати змогу потрапляти на вкладку в терміналі, коли пишеш ім’я шляху та спостерігаєш за автоматичним завершенням. Я не знав про це деякий час, поки я не дивився відео з кимось, хто його використовує. Я думав, що вони набрали при 300 об / хв! Тоді я наздогнав. :)
elbowlobstercowstand

12
@bvktor Включаються лише сайти з розширенням .conf. Якщо ви не хочете, щоб сайт був увімкненим, просто додайте розширення .disabled у файл конфігурації сайту. Це стандартна умова у CentOS / Apache, і вона застосовуватиметься і до Nginx.
SenG

0

Я спробував встановити sudo apt встановити nginx-full. Ви отримаєте всі необхідні пакети.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.