Я пытаюсь развернуть читать экземпляр на моем собственном сервере. Рекомендуемый способ развертывания - использование Gunicorn + nginx с postgres. Поскольку в основном нет документации о том, как это сделать (кроме их fabfiles, которые, конечно, работают только на их сервере), я пытался настроить свой собственный сервер вручную.
Вот мой nginx.conf
:
server {
listen 80 default;
server_name mysite.com;
access_log /var/log/nginx/mysite.access.log;
error_log /var/log/nginx/mysite.error.log;
location /favicon.ico {
root /home/mysite/Code/checkout/readthedocs.org/media/images;
break;
}
location robots.txt {
root /home/mysite/Code/checkout/readthedocs.org/media;
break;
}
location /static/ {
alias /home/mysite/Code/checkout/readthedocs.org/media/;
expires 30d;
break;
}
location /media/ {
alias /home/mysite/Code/checkout/readthedocs.org/media/;
expires 30d;
break;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://127.0.0.1:8888;
}
}
В settings.py
для конфигурации django можно найти Вот. Единственное, на чем я поменял settings.py
я добавляю gunicorn
на INSTALLED_APPS
так что я могу бегать с ним.
Команда, которую я использую для запуска сервера Gunicorn:
./manage.py run_gunicorn -b 127.0.0.1:8888
Тогда, если я попытаюсь получить доступ 127.0.0.1
из локального браузера он будет работать, но всегда будет отображать страницу 404, независимо от того, какой URL я ввел. Бег ./manage.py runserver
все будет работать правильно.
Сейчас я не системный администратор и практически не имею опыта работы с django, gunicorn или nginx раньше. Я гуглил и играл с конфигурацией в течение нескольких недель, с 0 результатом. У меня вопрос:
Большое спасибо.
Вы пробовали загрузить сайт через порт 8888, чтобы убедиться, что он работает правильно?
Есть ли у вас сообщение 404? nginx в тексте? Это будет означать, что у nginx возникла проблема с поиском ресурса, а не службы на порту 8888. В этом случае вы можете устранить неполадки в файле конфигурации.
Вы регистрируете доступ в nginx, поэтому вы можете посмотреть свой журнал для получения дополнительной информации. tail -n 10 /var/log/nginx/mysite.access.log
позволит вам увидеть последние 10 строк этого журнала.
По умолчанию nginx использует комбинированный формат журнала:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
Это должно помочь вам понять, что означает каждый столбец в вашем файле журнала.