Вопрос про настройку nginx

С наступающим праздником, уважаемые коллеги!

Суть такая: есть папка /etc/nginx/conf.d куда кладутся файлы конфигурации виртуальных хостов. В основном файле конфигурации указано:

include "/etc/nginx/conf.d/*.conf"

Вопрос такого плана. Можно ли в этом параметре указывать доступ к файлу по http? Или если быть точным, можно ли вместо текстовых файлов возвращать результат выполнения скрипта?

типа

include "http://localhost/vhosts.php"

Идея в том, чтобы создавать виртуальные хосты динамически.

Второй вопрос. Помимо nginx в OpenBSD встроен демон httpd - проблема в том, что при запуске он слушает все интерфейсы. Можно ли ему ограничить доступ к интерфейсам? Чтобы httpd и nginx работали на разных интерфейсах и не мешали друг другу?

Лига Сисадминов

1.6K поста17.8K подписчиков

Добавить пост

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий
Второй вопрос. Помимо nginx в OpenBSD встроен демон httpd - проблема в том, что при запуске он слушает все интерфейсы. Можно ли ему ограничить доступ к интерфейсам? Чтобы httpd и nginx работали на разных интерфейсах и не мешали друг другу?

server "www.example.com" { 

listen on * port 80 root "/htdocs/www.example.com"
}

В этой директиве указывается

раскрыть ветку (29)
1
Автор поста оценил этот комментарий

Там и указал - вместо * имя хоста. Всё равно слушает на всех.

UPD. А нет, спасибо, второй вопрос решён.

Сам оказался невнимателен. 😁

раскрыть ветку (28)
1
Автор поста оценил этот комментарий

Еще бы понять что ты в первом вопросе хочешь...

раскрыть ветку (27)
Автор поста оценил этот комментарий

PHP в браузере не возвращает свой код. Вместо этого он возвращает текст как результат выполнения скрипта. Соответственно если держать виртуальные хосты в базе SQL, то можно написать скрипт, который будет выдавать конфигурации виртуальных хостов в текстовом виде. И тогда будет достаточно сделать nginx reload чтобы добавить или убрать виртуальный хост.


Не обязательно php - perl или python тоже подойдут.

раскрыть ветку (26)
Автор поста оценил этот комментарий

Можно вызвать curl в конфиге с нужного адреса и тогда получим в конфиг ответ от скрипта

раскрыть ветку (25)
Автор поста оценил этот комментарий

В конфиге nginx.conf ?
Идея хорошая, но я пока не совсем понимаю как.

раскрыть ветку (24)
Автор поста оценил этот комментарий

Гугол в помощь. Мне дохуя всё лениво сейчас, сам думать и писать не хочу, потому вот первое что более менее похоже. https://debian.pro/2114

Алгоритм есть, меняй под себя. Костыльно, но сработает

раскрыть ветку (23)
Автор поста оценил этот комментарий

А, так это не в конфиге, а в скрипте. Но в принципе я что-то подобное и задумываю. Спасибо!

Только мне проще данные не башем, а похапе брать.

раскрыть ветку (22)
1
Автор поста оценил этот комментарий

Если делать по образцу, то здесь в конфиг пихуется луа скрипт, он вызывает сх с нужной командой, в нашем случае curl вернет искомое из пхп. Топорно, но работает.

раскрыть ветку (21)
Автор поста оценил этот комментарий

Понял, спасибо!

Просто смутило имя конфига

А теперь напишем конфиг для nginx (/etc/nginx/sites-enabled/bash):

И то, что идёт запуск баш-скрипта. Нельзя так делать!

раскрыть ветку (20)
Автор поста оценил этот комментарий
А то что вы пытаетесь сделать прям можно?
раскрыть ветку (19)
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку