• 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 

  • 相关阅读:
    连续两天写论文
    既然杂事比较多,索性统统处理一下
    Power symbol
    不要被一些无谓的事情烦扰
    今天提前回去吧,整理一下,为下周做好准备。
    天气暖和了,我却感冒了
    每天回想一下,今天到底完成了什么
    opensue12.1硬盘升级安装12.2问题解决
    IPmsg(飞鸽传书)协议翻译
    关于交叉验证和过拟合
  • 原文地址:https://www.cnblogs.com/fuchenjie/p/8573843.html
Copyright © 2020-2023  润新知