Linux部署Django (Nginx + uwsgi + Python3 + Django)全过程

最近把之前的服务器做了转移,重新部署,竟然发现有些生疏,在此做下总结以便日后可以熟悉点,亦可以帮助有需要的人。这里只写大流程可能会遇到一些问题可以参考 Linux 下部署Django项目你可能会遇到的问题!

系统: centos_7 + Python 3.5.2 + nginx-1.13.7 + uWSGI 2.0.17.1 + Django2.2.0


具体步骤如下:

1.升级Python3

系统自带的一般为Python2,需要对旧版本进行升级

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar -zxvf Python-3.5.2.tgz
cd Python-3.5.2
./configure 
make 
make install  

查看结果

 python3 -V
 Python 3.5.2

设置python 默认版本3.x

 ls -al /usr/bin | grep python
 -rwxr-xr-x.  1 root root      11216 12月  1 2018 abrt-action-analyze-python
 lrwxrwxrwx.  1 root root          6 4月  30 12:11 python -> python2
 lrwxrwxrwx.  1 root root          5 4月  30 12:11 python2 -> python2.7
 -rwxr-xr-x.  1 root root       7136 4月 20 2018 python2.7

将原来 python 的软链接重命名:

  mv /usr/bin/python /usr/bin/python.bak
  ln -s /usr/local/bin/python3 /usr/bin/python
  python -V
  python 3.5.2

2.升级pip3(该过程可能要安装 setuptools

  wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz --no-check-certificate  
  tar xvf pip-1.3.1.tar.gz  
  python pip-1.3.1/setup.py install 

3.安装Django (很多方法可以自己选)

 pip install django

4.安装uwsgi

pip install uwsgi

5.安装nginx和配置nginx.conf文件

wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -zxvf nginx-1.13.7.tar.gz
./configure
make
make install

.conf文件配置

server {
listen 8996; #暴露给外部访问的端口
server_name localhost;
    charset utf-8;
location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8997; #外部访问8996就转发到内部8997
}
location /static/ {
    alias /home/www/myproject/myapp/static/; #项目静态路径设置
  }
}

6.配置diango

<uwsgi>
<socket>127.0.0.1:8997</socket><!-- 内部端口,自定义注意跟.conf 一致 -->
    <chdir>/home/www/myproject</chdir><!-- 项目路径 -->
        <module>myproject.wsgi</module>
            <processes>4</processes> <!-- 进程数 --> 
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>

7.运行nginx

   cd /usr/local/nginx/sbin
  ./nginx  
  //没有任何输出说明启动成功

这时候可以打开网页访问对应IP了

8.运行uwgix

cd 到项目
uwsgi -x  项目.xml
// [uWSGI] parsing config file my_blog.xml 一般这样输出就说明成功了

这个时候访问IP就可以打开具体的网页喽

一般来说到这里就算搞成了,但是现实中肯定有很多问题,对于这些问题我也做了总结有需要的可以查看Linux 下部署Django项目你可能会遇到的问题! 下面我对经常用的指令做下总结方便日后使用


常用指令

配置 nginx.conf文件

  cd /usr/local/nginx/conf/
  vim nginx.conf

启动: nginx

cd /usr/local/nginx/sbin
./nginx

运行 uwsgi

  uwsgi -x my_blog.xml

查看 nginx 日志

 tail -f /usr/local/nginx/logs/access.log

查看日志 uwsgi

tail -f uwsgi.log

查看进程号

 ps -ef|grep nginx

杀死进程

   kill   进程ID

查看端口使用情况

netstat -ntulp|grep 80

MAC查看端口占用情况

lsof -i tcp:8000

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券