[linux]centos7.4部署django+Uwsgi+Nginx
前言:我已经写了几个接口用来部署在服务器上的,首先选择django+Uwsgi+Nginx因为配置简单,比较符合python的简单操作功能强大的特点
然后对于django的一些版本在之前的文章写了 参考:https://www.cnblogs.com/Jack-cx/p/9351633.html 根据版本,服务器pip3 install xxx 安装下
我的django项目大概结构:
TestWebApi
----TestWebApi
----Apiso(创建的应用)
----manage.py
1.关闭debug
这时候算是部署正式环境,首先得把debug给关掉,参考之前写的一篇:https://www.cnblogs.com/Jack-cx/p/9348326.html,设置下debug,包含了域名、外网的访问,
另外数据库配置自己根据实际情况修改~
2.尝试启动下,
cd /项目下
python manage.py runserver ip:port
这里有个坑,可能会报错 没有ssl库
rpm -aq|grep openssl #查看有没有包在服务器
查看结果-这个是正常有的
[root@s011805161450 ~]# rpm -aq|grep openssl
openssl-1.0.1e-48.el6_8.1.x86_64
openssl-devel-1.0.1e-48.el6_8.1.x86_64
没有则安装
# yum install openssl-devel -y
# yum install openssl
vi /usr/local/python36/Modules/Setup
#修改Setup文件
#修改结果如下:
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
:wq!
重新编译
cd /usr/local/python36/
make && make install
验证
>>> import _ssl
>>> exit()
这时候在启动项目,OK了~
3.既然启动ok了,那么配置下uwsgi
直接安装即可
pip3 install uwsgi
创建配置文件
vi /etc/uwsgi.ini
[uwsgi]
# Django-related settings
socket = :8100
#端口
# Django项目目录
chdir = /opt/devpython/TestWebApi
# wsgi.py,直接写个项目名.wsgi就可以了
module = TestWebApi.wsgi
# process-related settings
# master
master = true
# 进程数
processes = 4
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
daemonize = /var/log/TestWebApi.log #注意如果没有log就不在后台运行了
这样就完了
启动试下,
uwsgi --ini /etc/uwsgi.ini
查看进程
ps -ef |grep uwsgi
root 1498 1 0 Jul21 ? 00:00:07 uwsgi --ini /etc/uwsgi.ini
root 1500 1498 0 Jul21 ? 00:00:01 uwsgi --ini /etc/uwsgi.ini
root 1501 1498 0 Jul21 ? 00:00:00 uwsgi --ini /etc/uwsgi.ini
root 1502 1498 0 Jul21 ? 00:00:00 uwsgi --ini /etc/uwsgi.ini
root 1503 1498 0 Jul21 ? 00:00:00 uwsgi --ini /etc/uwsgi.ini
root 4992 4912 0 22:14 pts/1 00:00:00 grep --color=auto uwsgi
这样说明成功了~~
4.最后一步配置nginx
vi /opt/nginx/conf/nginx.conf
server {
listen 80;
server_name www.ba.com; #配置域名,不配置写个localhost就可以了
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
include uwsgi_params;
uwsgi_pass 内网ip:端口 #uwsgi配置的端口号
uwsgi_read_timeout 30;
}
刚才uwsgi启动成功了,这会启动nginx
./opt/nginx/sbin/nginx
查看nginx进程
ps -ef |gerp nginx
如下即成功~
root 1505 1 0 Jul21 ? 00:00:00 nginx: master process ./opt/nginx/sbin/nginx
nobody 1506 1505 0 Jul21 ? 00:00:00 nginx: worker process
root 5007 4912 0 22:21 pts/1 00:00:00 grep --color=auto nginx
具体nginx其他操作参考:https://www.cnblogs.com/Jack-cx/p/9356467.html
终于完了,,python后端大概告一段落,我要开始学习性能啦~ 后面同样记录到博客园,记录每个坑~~~
@若有理解错误的地方,请留言告知,谢谢~