Nginx обслуживает статические файлы и обратный прокси-сервер.

Привет, ребята. Я хочу создать конфигурацию nginx для моего сервера. Я хочу служить localhost для тестирования на данный момент. Поэтому я настроил файл myWebsite.conf, который я включаю в файл nginx.conf через include /path/to/myWebsite.conf

Я хочу, чтобы мой сервер блокировался таким образом, чтобы он мог обслуживать статические файлы index.html, css и js, когда URL-адрес localhost:8080 и когда url-адрес localhost:8080/services. Я хочу, чтобы nginx обращался к прокси-серверу gunicord. это работает и обслуживает мое приложение сокола (внутренняя структура Python)

То, как я построил свой серверный блок, выглядит следующим образом

server {
  listen 8080;
  server_name localhost;
  index index.html

  location ~ / {
    root /path/to/var/www/mySite (where I have only my index.html page)
  }

  location ~ /services {
    proxy_pass http://127.0.0.1:8000; (gunicorn server running)
  }

  add_header Cache-Control no-cache; (no cache for testing reasons)
}

В результате я получаю, что сервер обслуживает только index.html и ничего больше. Когда я набираю localhost:8080/services, у меня нет доступа к моим методам API в моей программе на python. Можете ли вы помочь мне, пожалуйста, на какую роль я должен изменить, чтобы заставить его играть? Или у меня что-то не так в том, как я пытаюсь это сделать?

1 ответ

Решение

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

Попробуйте вот так:

server {
  listen 8080;
  server_name localhost;
  index index.html

  location / {
    root /path/to/var/www/mySite; # (where I have only my index.html page)
  }

  location /services/ {
    proxy_pass http://127.0.0.1:8000/; #(gunicorn server running)

    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

  add_header Cache-Control no-cache; #(no cache for testing reasons)
}
Другие вопросы по тегам