
У меня есть проект Django, который работал на сервере разработки, и я пытаюсь перенести его на производственный сервер Ubuntu. Я запустил, с очевидным успехом, "python manage.py run_gunicorn 0.0.0.0:8000", но мои попытки подключиться к нему через обычный браузер указали наhttp://JonathansCorner.com:8000/истекает время ожидания. (Когда я вручную запускаю «telnet localhost 8000» и даю запрос GET, он выводит соответствующий HTML.) UFW отключен.
Что можно сделать, чтобы Gunicorn был доступен на порту 80 извне?
решение1
Хочу предложить вам три вещи для размышления:
Во-первых, что касается вашего брандмауэра, похоже, выделатьесть какой-то брандмауэр, так как порт 8000 «фильтруется»:
~ nmap jonathanscorner.com -p 8000
Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-14 09:53 CST
Nmap scan report for jonathanscorner.com (54.218.143.2)
Host is up (0.10s latency).
rDNS record for 54.218.143.2: ec2-54-218-143-2.us-west-2.compute.amazonaws.com
PORT STATE SERVICE
8000/tcp filtered http-alt
Во-вторых, похоже, что это работает на EC2? В таком случае вам нужно будет изменить свою группу безопасности, чтобы разрешить этот трафик.
В-третьих, обычно не очень хорошая идея — выставлять gunicorn напоказ. Пусть gunicorn слушает localhost:8000
(как и вы), а затем используйте надлежащий веб-сервер для проксирования запросов к gunicorn.
Например, установите nginx и получитеэтопрослушивать порт 80, а затем передавать запросы через прокси-сервер на gunicorn localhost:8000
.