Конфигурация Apache на Synology DS для использования с mod_wsgi / Django

Я начал разработку нового сайта с использованием Django. Для реалистичного тестирования я хотел запустить его на NAS-устройстве Synology DS212J. Следуя официальным руководствам Synology, я установил ipkg и пакет mod_wsgi. В качестве следующего шага: следуя стандартному руководству, я создал virtualenv и установил в него Django. Откройте новый проект и настройте следующие параметры: https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-16-04 Я могу зайти на сайт "Hello World" из Django, используя manage.py

Как предложено, я хочу обменять файл manage.py через сервер apache на NAS. Поэтому я думаю, что я должен пойти и отредактировать файлы конфигурации apache, например, для определения виртуального хоста... Однако я не могу локализовать файлы для него, так как кажется, что они были перенесены в DSM6 (который я использую) по сравнению с другими руководствами,

Где мне нужно ввести значения, следующие за Учебником по Synology?

Поскольку я совсем новичок в этой теме, нужно ли мне особенно загружать модуль mod_wsgi для Apache и если где?

Является ли хорошей идеей использовать базовый режим wsgi вместо режима демона? Я не уверен, какие модули Django будут использоваться позже при разработке...

Спасибо за поддержку!

0 ответов

Активируйте пакет python 3 и веб-станцию ​​в webstation> general settings> main server http enable nginxВ Control Panel> Network> DSM Settings> Enable Custom Domain: "test" (что позволит нам получить доступ к nas, введя test.local и упростив задачу позже.) Включите ssh-соединение в control panel> terminal and smtp

Мы используем службу ddns Synology для внешнего доступа в нашем случае "test.synology.me"

В control panel> security> certificate: генерируем наш ssl сертификат с помощью Let's encrypt Подключаемся к nas в ssh Получим root права sudo -iУстановите virtualenv: easy_install virtualenvНастраиваем нашу виртуальную среду: virtualenv -p python3 flasktest

Фляга и пулемет устанавливаются: pip install flask gunicornМы создаем наше веб-приложение, файл: init.py Запускаем наше веб-приложение с помощью gunicorn: gunicorn --certfile /usr/syno/etc/certificate/system/default/cert.pem --keyfile /usr/syno/etc/certificate/system/default/privkey.pem -b 127.0 .0.1: 5000 app: appВ /etc/nginx/sites-enabled создаем файл конфигурации сервера, в качестве прокси будем использовать nginx, в нашем случае это будет файл flasktest.conf flasktest.conf:

`server {

listen 443 ssl http2;
listen [::]:443 ssl http2;

gzip on;

server_name test.synology.me;

location / {
    proxy_pass https://127.0.0.1:5000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

error_log /volume1/projects/flasktest/logs/error.log; 
access_log /volume1/projects/flasktest/logs/acess.log; 

}`

Открыть control panel port> external access> router configuration> create> integrate application> enable the check boxfor webstation and apply

Проверяем наш серверный файл на предмет того, что вводим команду, nginx -t

Мы перезапускаем nginx synoservicecfg --restart nginx

Теперь у вас есть доступ к вашим веб-приложениям на Python извне по https ** https: //test.synology.me**

немного больше информации... Чтобы завершить работу и получить постоянный доступ к вашему приложению, если вы когда-нибудь сможете перезагрузиться, выйдет из строя... вы можете создать сценарий, который перезапустит Gunicorn, потому что в противном случае веб-станция возьмет верх в другом месте, если вы введете ip nas локально, вы do не будет видеть ваши веб-приложения в python, потому что мы не изменяли основной файл конфигурации /etc/nginx/nginx.conf локально, поэтому это страница index.html по умолчанию для отображаемой веб-станции.

пример:

cd / volume1 / projects / flasktest source bin / activate gunicorn --certfile /usr/syno/etc/certificate/system/default/cert.pem --keyfile /usr/syno/etc/certificate/system/default/privkey.pem -b 127.0.0.1:5000 app: app </ dev / null 2> & 1 &

Этот метод найден в другой среде Python

Другие вопросы по тегам