[linux]centos7.4部署django+Uwsgi+Nginx

Posted jack.cx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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后端大概告一段落,我要开始学习性能啦~  后面同样记录到博客园,记录每个坑~~~

 

@若有理解错误的地方,请留言告知,谢谢~

 

以上是关于[linux]centos7.4部署django+Uwsgi+Nginx的主要内容,如果未能解决你的问题,请参考以下文章

Centos7.4部署k8s集群(v1.17.17)

centos7.4安装部署jumpserver(数据库外置)配置全过程--无问题

Linux开发_CentOS7.4服务器安装NFSNGINX服务器,ffmpegQt环境

Django部署在linux下,如何调试?

Linux开发_CentOS7.4服务器安装NFSNGINX服务器,ffmpegQt环境

多Tomcat部署实战