Nginx обслуживает "местоположение /", но не обслуживает "местоположение / имя проекта /", указанное в файле / etc / nginx / sites-available / config - PullRequest
0 голосов
/ 05 февраля 2020

Я очень новичок в Nginx и использую его для настройки моего сайта следующим образом:

  1. Запрос на http://xx.xx.xx.xx/ -> Nginx должен обслуживать stati c html файлы из каталога / var / www/html

  2. Запрос на http://xx.xx.xx.xx/project-name/ -> Nginx должен вызвать Python Flask приложение через WSGI (используя сокет UNIX)

Вот мой файл / etc / nginx / sites-available / project-name:

server {
   listen 80:
   server_name xx.xx.xx.xx;

   root /var/www/html;

   location / {
      try_files $uri $uri/ =404;
   }

   location /project-name/ {
      include wsgi_params;
      uwsgi_pass unix:/home/user-name/project-name/project-name.sock
   }
}

Когда я набираю http://xx.xx.xx.xx в браузере, мне предоставляется страница по умолчанию Nginx. Но если я наберу http://xx.xx.xx.xx/project-name/ в браузере, я получу ошибку 404 (запрошенный URL не найден).

Теперь, если я укажу «location /» на * Приложение 1047 *, как показано ниже, тогда приложение Flask работает нормально и возвращает нужную страницу (но http://xx.xx.xx.xx вызывает приложение Flask, и я не могу обслуживать stati c html файлы непосредственно из Nginx):

server {
   listen 80:
   server_name xx.xx.xx.xx;

   location / {
      include wsgi_params;
      uwsgi_pass unix:/home/user-name/project-name/project-name.sock
   }
}

Я что-то упустил?

1 Ответ

0 голосов
/ 05 февраля 2020

Это был простой недосмотр.

В моем Flask приложении я обрабатывал маршрут '/' вместо '/project-name/'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...