Чи можна змусити Nginx слухати різні порти?


82

Я створив один Nginx за допомогою одного Linux Azure VM, чи можна змусити nginx прослуховувати різні порти, щоб коли я змінив номер порту, вміст був би іншим. Я виявив, що станеться зіткнення, якби я створив два або більше портів, пов'язаних з HTTP на VM. Хтось може мені допомогти у цьому?

Відповіді:


89

Так.

Напевно, ви хочете, щоб це декілька "серверних" строф, кожен з яких має інший порт, але, можливо, (можливо?) Одне і те саме ім'я_сервера, яке обслуговує "різний" вміст відповідно до кожного, можливо, з різним корінцем документа на кожному сервері.

Повна документація тут: http://nginx.org/en/docs/http/server_names.html

Приклад:

server {
    listen       80;
    server_name  example.org  www.example.org;
    root         /var/www/port80/
}

server {
    listen       81;
    server_name  example.org  www.example.org;
    root         /var/www/port81/
}

Хороша роз’яснення
billcyz

16
Прикро, що ніхто не може цього зробити listen 80 81;? Ну добре ...
Метт Флетчер

@MattFletcher Можна зробити щось подібне, дивіться коментар Фелікса: serverfault.com/a/755791/308219
PaulMest

182

Ви також можете зробити наступне:

server {
    listen 80;
    listen 8000;
    server_name example.org;
    root /var/www/;
}

2
Це чудово. Зокрема, можливість змінити конфігурацію сервера лише в одному контексті сервера, здається, набагато перевершує ризик змінити одного і залишити інше незмінним ...
Аарон Соффер

6
Це не дає відповіді на питання, яке задає @billcyz. Він просив різних портів та різного змісту . Ця відповідь дає різні порти з однаковим вмістом .
Ісаак Сазерленд

@Krishnendu: "набагато зручніше"? зручніше ніж що? Це не відповідає на питання ОП. У цьому випадку обидва: 80 та: 8000 вказують на один і той же зміст. ОП явно запитав "коли я зміню номер порту, зміст буде іншим". Отже, повідомлення від Крейга Міскелла відповідає на питання набагато краще, ніж це
cedbeu

3
@cedbeu: Так, ти маєш рацію в контексті запитання, на який відповів Крейг Міскелл, відповідь більш доречна. Я шукав інше рішення, де мені потрібно подавати один і той же вміст на декілька портів, саме це мені і було потрібно. Знову для заданого питання, що задається іншим, більше підходить, вибачте, якщо я когось вводжу в оману, це була чесна помилка з мого боку.
Крішненду

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