Centos7系统中下部署项目Python3+Django+nginx+uwsgi

Centos7部署nginx环境

 安装依赖包

  命令:yum install gcc-c++

  yum install -y pcre pcre-devel
  yum install -y zlib zlib-devel
  yum install -y openssl openssl-devel

  • yum下载nginx并安装

    命令:yum install -y nginx nginx-devel

  • 启动nginx服务,服务默认端口是80

    命令:systemctl start nginx

  • 测试是否成功

    访问本机的80接口

    命令:curl:127.0.0.1:80

    返回nginx主页的html代码说明安装成功

Centos7部署uwsgi环境,并使用uwsgi运行django项目

  • 创建django项目

    命令:django-admin startproject mysite  会在当前目录下创建mysite目录

    进入mysite目录,创建项目。

    命令: (python3的在系统中的环境变量名)   python3 manage.py startapp CompanyTemplate  会在mysite目录下创建CompanyTemplate项目

    

  • 运行项目检查项目是否能够正常运行

    在manage.py 文件夹下使用执行运行操作

    命令:python3 manage.py runserver  :8090

    在使用端口前可以先查一下端口是否被占用

    lsof -i :8090

  • 使用pip3下载uwsgi

    (pip3 pip3在系统中的环境变量) 命令:pip3 install uwsgi

  • 添加环境变量

    命令:ln -s  /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

  • 使用uwsgi运行django项目

    (uwsgi3 uwsgi在系统中的环境变量)

     命令:uwsgi3 --http :8091  --chdir  /root/www/mysite  --module mysite.wsgi

     /root/www/mysite      --mysite目录的地址

    mysite.wsgi              --mysite指的是 /root/www/mysite/mysite  文件夹,wsgi指的是该文件夹下的wsgi.py文件

  •  使用浏览器打开8091地址查看项目是否可以正常访问

使用nginx代理访问uwsgi

    Nginx是一个Http和反向代理服务器 
    什么是反向代理服务器呢?

  • 正向的就是由浏览器主动的想代理服务器发出请求,经代理服务器做出处理后再转给目标服务器
  • 反向的就是不管浏览器同不同意,请求都会经过代理服务器处理再发给目标服务器

  这其中的区别就是必须经过Nginx反向代理服务器,这就有了使用Nginx的几个好处:

    • 安全:不管什么请求都要经过代理服务器,这样就避免了外部程序直接攻击web服务器
    • 负载均衡:根据请求情况和服务器负载情况,将请求分配给不同的web服务器,保证服务器性能
    • 提高web服务器的IO性能:这个我也没看懂,总结来说就是请求从客户端传到web服务器是需要时间的,传递多长时间就会让这个进程阻塞多长时间,而通过反向代理,就可以在反向代理这完整接受请求,然后再传给web服务器,从而保证服务器性能,而且有的一些简单的事情(比如静态文件)可以直接由反向代理处理,不经过web服务器
  • 创建uwsgi配置文件

    创建文件 test.ini 文件

    编写文件内容配置参数有很多这里只简单设置一下

    -----------------------------------------------------------------------------------------------

    #uwsgi.ini file
    [uwsgi]

    chdir=/root/www/mysite   #项目位置
    module=mysite.wsgi  #wsgi.py文件所在位置
    socket=127.0.0.1:8091  #限制只能通过本地访问8091端口来访问项目

    ----------------------------------------------------------------------------------------------------

    重启uwsgi服务

    systemctl restart uwsgi 

  • 修改nginx的配置文件

    nginx配置文件默认路径为/etc/nginx/nginx.conf

    修改配置信息

    命令  vim /etc/nginx/nginx.conf

    ------------------------------------------------------------------------------------------------------

    

     

     

    -------------------------------------------------------------------------------------------------------

    重启nginx

    命令:systemctl restart nginx 

使用nginx代理获取静态文件

当访问网站时静态文件获取不到页面样式报错,比如: Django中使用admin后台管理框架

  • 修改Django项目settings.py配置文件

    设置静态文件提取路径

    

    /root/www/mysite/  为项目在服务器上部署的绝对路径

  • 将Django项目中的静态文件分离出来

     在manage.py文件所在路径下执行分离

    python3 manage.py collectstatic

  • 修改Nginx服务配置文件,设置静态文件获取地址

    命令:vim /etc/nginx/nginx.conf

    

  • 重启nginx服务

    systemctl restart nginx 

原文地址:https://www.cnblogs.com/fuchenjie/p/8573843.html