我开始使用Django开发一个新网站。为了进行实际测试,我想在Synology DS212J NAS上运行它。按照官方的语法指南,我安装了ipkg和mod_wsgi包。下一步:按照标准教程,我创建了一个虚拟环境并在其中安装了Django。打开一个新项目并调整以下设置:https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-16-04我可以通过使用manage.py从Django访问"Hello World“站点
按照建议,我希望通过NAS上的apache服务器交换manage.py。所以我想我应该去编辑apache的配置文件,比如定义一个虚拟主机...然而,我不能本地化它的文件,因为与其他指南相比,它们似乎是在DSM6 (我使用的)上移动的。
在语法教程之后,我需要在哪里输入值?
由于我是一个新手,我是否需要专门为Apache加载mod_wsgi模块,如果是在哪里?
使用wsgi的基本模式而不是守护程序模式是个好主意吗?我不确定哪些Django模块将在以后的开发中使用。
感谢您的支持!
发布于 2019-11-29 01:16:20
在Control Panel> Network> DSM Settings> Enable Custom Domain: "test"
的webstation> general settings> main server http enable nginx
中激活Python3包和网站(这将允许我们通过输入test.local来访问nas,并在稍后简化任务)。在control panel> terminal and smtp
中启用ssh连接
在我们的例子"test.synology.me“中,我们使用synology的ddns服务来进行外部访问。
在control panel> security> certificate
中:我们使用let's encrypt生成SSL证书在ssh中连接到nas获得根权限sudo -i
安装virtualenv:easy_install virtualenv
我们设置了我们的虚拟环境:virtualenv -p python3 flasktest
安装了Flask和gunicorn:pip install flask gunicorn
我们创建web应用程序,文件: 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
启动web应用程序在/etc/nginx/sites-enabled
中,我们创建服务器配置文件,我们将使用nginx作为代理,在本例中,该文件将是flasktest.conf flasktest.conf文件:
`服务器{
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 box for webstation and apply
我们检查服务器文件,看是否输入了命令nginx -t
我们正在重启nginx synoservicecfg --restart nginx
您现在可以在https ** https: //test.synology.me**中从外部访问您的python web应用程序
更多的信息...要永久结束和访问您的应用程序,如果您将能够重新启动,崩溃...你可以创建一个脚本来重启gunicorn,否则网站会接管其他地方,如果你在本地输入ip nas,你将不会在python中看到你的web应用程序,因为我们没有在本地修改主配置文件/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框架中找到。
https://stackoverflow.com/questions/54164165
复制相似问题