Разгръщам приложение на сървър, но изглежда, че не разбирам някои основни понятия тук. Проблемът е, че използвам gunicorn с порт 8001
gunicorn myproj.wsgi:application --bind XXX.XXX.XXX.XXX:8001
Nginx обаче слуша порт 8000, както можете да видите в / etc / nginx / sites-available / myproj:
server {
listen 8000;
server_name XXX.XXX.XXX.XXX;
access_log off;
location /static/ {
root /opt/myproj;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3p "CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"";
}
}
Ето какво се случва:
Когато влизам в XXX.XXX.XXX.XXXX: 8001, получавам страницата си, но без никакви статични файлове. Мога да получа достъп до статичните файлове от XXX.XXX.XXX.XXX:8000/static/css/mycss.css. Въпреки това, когато влизам в XXX.XXX.XXX.XXX:8000, получавам 502 - Bad Gateway
грешка.
Какво съм неразбиране тук? Как мога да получа достъп до страницата си със статичните файлове?
Отговори:
2 за отговор № 1Вашият проблем се случва, защото сте обвързващиgunicorn към вашия външен ip, но nginx препраща към пристанището localhost. Въпросът е, че глунорът изобщо не би трябвало да е достъпен за външната среда; всички заявки трябва да преминат през nginx обратната прокси.
Свържете gunicorn до 127.0.0.1:8001.
1 за отговор № 2
Основната схема при използване на сървъри за приложения, като gunicorn е:
[Уеб браузър на потребителя] <-> [Уеб сървър (Nginx)] <-> [Сървър на приложения (Gunicorn)]
Уеб сървърът обикновено слуша на публичния IP адресадрес на порт 80 и след това препраща връзката към сървъра на приложения, служейки като обратна прокси сървър. Ако стартирате сървър на приложения и уеб сървър на един и същ хост, той е общ за свързване на "localhost" (IP: 127.0.0.1) и същия порт, т.е. 8001 във вашия случай. посочени в конфигурацията ви Nginx.
Забележка: В случай, че два сървъра се изпълняват на една машина, обикновено си струва да ги свържете чрез UNIX контакти, вместо с мрежови контакти, поради причини, свързани с производителността.