uwsgi+Django实现域名访问
说明
项目采用quasar+Django前后端分离,Django只能通过IP+端口号的方式。因为没有用https协议加密,便不太关心。
今天有功能用到定位功能,但http协议只能提供低精度定位,完全不能满足要求,于是开始升级https。第一步就是实现Django的域名访问。
Django文档中提到可以用uwsgi来映射端口给nginx,尝试过后写文档记录下来。
uwsgi安装
系统环境centos7 python3.6
pip3 install -y uwsgi
遇到报错<***.h>
时,需要安装python对应的dev包后重新安装uwsgi
yum install python36-devel -y
测试 uwsgi 是否正常:
新建 test.py 文件,内容如下:
1 |
|
然后在终端运行:
1 |
|
在浏览器内输入:ip:8001,查看是否有”Hello World”输出,若没有输出,请检查你的安装过程。
安装Django
把项目文件上传到所需目录,安装所需包即可
setting中关闭Debug
安装Nginx
安装过程略过,手动安装或用插件安装都可以,重点是Nginx配置部分
1 |
|
uwsgi配置文件
新建一个uwsgi.ini文件
1 |
|
测试
终端运行 :uwsgi -i uwsgi.ini
出现第二行时,打开Nginx中绑定的域名测试 访问正常,如果访问不同查看端口是否打开
打开域名时显示Internal Server Error
说明配置文件有问题,查看控制台输出解决
结语
通过uwsgi绑定域名后,可以对网站进行https加密,加密后注意前端接口的地址和跨域问题。
uwsgi命令
配置完成后启动服务加载配置
1 |
|
重载uwsgi配置文件
1 |
|
停止uwsgi服务
1 |
|
若使用stop不能完全停止进程可以用kill循环强行结束
1 |
|
参考文章
https://zhuanlan.zhihu.com/p/52225008
https://blog.csdn.net/weixin_34391445/article/details/92541369
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!