Это ответ в моем случае, но вы должны найти ответ на свой вопрос. В моем случае у меня есть:
Мой Django IP-сервер: 172.30.10.92
Мой IP-сервер Nginx: 172.30.10.93
1 - Установить и настроить wsgi (находится на сервере Django)
WSGI - это файл, созданный в вашем проекте Django.
Файл находится в /path/to/your/project/Myproject/wsgi.py
Мы должны отредактировать этот файл так:
import os
from django.core.wsgi import get_wsgi_application
import sys sys.path.append('/var/www/html/Myproject')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Myproject.settings")
application = get_wsgi_application()
2 - Установить и настроить gunicorn / supervisor (находится на сервере Django)
Чтобы установить gunicorn / supervisor, вы должны выполнить в своей оболочке:
pip install gunicorn
pip install supervisor
Затем вам нужно создать новый файл в /etc/supervisor/conf.d/Myproject.conf
, который будет выглядеть так:
[program:Myproject]
command = /home/valentin/.virtualenvs/MyprojectEnv/bin/gunicorn Myproject.wsgi:application --name "Myproject" --workers=4 --bind=0.0.0.0:8080 -- user="valentin" --group="valentin" ; Command to start app
user = username #You have to replace by your username
stdout_logfile = /var/log/supervisor/supervisor.log
redirect_stderr = true
log
environment=LANG=fr_FR.UTF-8,LC_ALL=fr_FR.UTF-8
Я указал порт 8080 , который является портом связи между моим сервером приложений и моим веб-сервером.
3 - Редактировать файл hosts на сервере nginx (расположен на сервере nginx)
Вы должны отредактировать файл hosts, расположенный в /etc/hosts
, и добавить новую запись на ваш сервер Django:
127.0.0.1 localhost
127.0.1.1 valentin
172.30.10.92 Myproject
# The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
4- Новый файл конфигурации в репозитории nginx (находится на сервере nginx)
Этот новый файл должен быть помещен в /etc/nginx/sites-available/Myproject.conf
server {
listen 8080;
server_name Myproject;
root /var/www/html/Myproject/;
location /static/ {
root /var/www/html/;
}
location / {
include proxy_params;
proxy_pass http://172.30.10.92:8080;
}
}
IP-адрес соответствует адресу моего сервера Django. Я указал порт прослушивания (8080), путь к моему проекту Django и статический каталог.
Затем необходимо создать символическую ссылку на сайтов с поддержкой .
После этой операции перезапустите службу nginx:
sudo service nginx restart
5- Разрешить IP-адрес nginx в Django (расположен на сервере Django)
Вам необходимо отредактировать файл settings.py , чтобы разрешить IP-адрес nginx в ALLOWED_HOSTS :
ALLOWED_HOSTS = ['localhost', '172.30.10.93', '127.0.0.1', '[::1]']
6 - наконец выполнить gunicorn (находится на сервере Django)
Наконец, вы должны начать Gunicorn. Вы должны быть внутри вашего корневого проекта Django и выполнить:
gunicorn Myproject.wsgi:application --bind 172.30.10.92:8080
Теперь, в вашем браузере, попробуйте подключиться к вашему серверу nginx через порт:
http://172.30.10.93:8080
Работает!
EDIT
Ваш статический каталог не находится в том же каталоге, что и ваш проект django.
Создайте новый статический каталог, укажите путь в файле settings.py, а затем сделайте python manage.py collectstatic
.
Не забудьте отредактировать файлы nginx.