Рейтинг:0

Как сделать так, чтобы мой сервер Nginx с обратным прокси-сервером обращался к другим маршрутизируемым файлам в экспресс-приложении, работающем на порту 3000?

флаг it

В настоящее время у меня есть экспресс-приложение внутри /usr/share/nginx/myexpress.

Экспресс-приложение прослушивает и отлично работает на порту 3000. Мой сервер NGINX выполняет обратное проксирование к нему, и я могу просмотреть экспресс-страницу по умолчанию, перейдя на kodix.com.br.

Проблема в том, что я не могу зайти, например, на kodix.com.br/hello после маршрутизации. Я могу получить к нему доступ только через IP-адрес. (Как в этом примере, но с другими номерами: 143.94.233.176:3000/hello)

вот мой текущий сайты доступны конфигурация нгинкс:

вышестоящее node_app{
сервер 127.0.0.1:3000;
}

сервер {

    корень /usr/share/nginx/myexpress;

    # Добавьте index.php в список, если вы используете PHP
    индекс index.html index.htm index.nginx-debian.html;

    имя_сервера kodix.com.br www.kodix.com.br;

    место расположения / {
        # Сначала пытаемся обслужить запрос как файл, затем
        # в качестве каталога, затем вернуться к отображению 404.
        try_files $uri $uri/ =404;
        proxy_pass http://node_app;
        прокси_http_версия 1.1;
        proxy_set_header Обновить $http_upgrade;
        proxy_set_header Соединение «обновление»;
        proxy_set_header Хост $host;
        proxy_cache_bypass $http_upgrade;
    }

}

Как мне сделать так, чтобы я мог получить доступ к другим экспресс-страницам, используя мой сервер nginx?

djdomi avatar
флаг za
пожалуйста, исправьте свой вопрос, не ясно, что вы любите делать
Gerard H. Pille avatar
флаг in
Если я правильно помню, местоположение, оканчивающееся на /, должно proxy_pass к местоположению, оканчивающемуся на /, как в «proxy_pass http: //node_app/;» (оставьте пробелы вокруг :).
Gabriel avatar
флаг it
@djdomi Я хочу получить доступ к другим маршрутизируемым экспресс-страницам, например, при доступе к kodix.com.br/hello я попаду на маршрутизируемую страницу просмотра, которую я настроил в папке представлений из экспресс.
Gabriel avatar
флаг it
@GerardH.Pille Это просто приводит к тому, что sudo nginx -t возвращается с ошибкой.
Gerard H. Pille avatar
флаг in
«Я не могу пойти»: что будет, если попытаться?
Рейтинг:0
флаг it

Я не уверен, что это правильный способ сделать это, но мне удалось заставить его работать, добавив блок местоположения в блок сервера:

местоположение / привет / {
    proxy_pass http://localhost:3000/hello;
}

Затем доступ к myserver.com.br/hello перенаправляет меня на нужную страницу.

djdomi avatar
флаг za
а по какой причине у вас root /usr/share/nginx/myexpress; если вы используете reverse_proxy?
Рейтинг:0
флаг cz

Обычное решение для этого - использовать именованное местоположение. В этой настройке nginx будет сначала обслуживать статический контент. Если для пути URL-адреса не существует статического содержимого, вместо возврата ошибки 404 оно передается в указанное местоположение, которое отправляет его в ваше приложение.

Это очень простое дополнение:

    место расположения / {
        try_files $uri $uri/ @express;
    }

    местоположение @экспресс {
        proxy_pass http://node_app;
        прокси_http_версия 1.1;
        proxy_set_header Обновить $http_upgrade;
        proxy_set_header Соединение «обновление»;
        proxy_set_header Хост $host;
        proxy_cache_bypass $http_upgrade;
    }

P.S. Хранить веб-файлы в /usr/доля/nginx. Этот каталог принадлежит диспетчеру пакетов, и он имеет право удалять все в нем всякий раз, когда пакет nginx обновляется или удаляется. (Скорее всего, так не пойдет, но это риск, на который я бы не пошел.)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.