zoukankan      html  css  js  c++  java
  • Django部署阿里云服务器(nginx+uwsgi)

    前言:购买阿里云操作系统是 CentOS 7.7 64位

    一、下一个Xshell软件

    对于不习惯在阿里云终端操作的,可以下这个软件,方便后台操作。

    使用命令ssh root@你的服务器公网IP 登录阿里云服务器。

    二、安装宝塔面板

    (方便上传文件,删除文件,修改文件内容等操作,对于vim操作不熟悉的,可以用这个)

    安装命令:

    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

     

    安装以后会给你一个随机的账号和密码,用8888的端口进行登录,会弹出推荐安装套件,这个看自己需求。

     

    在安装的时候,我们可以面板设置把账号密码修改一下。

    然后在安全里面把自己要用的端口都设置一下

     因为宝塔有防火墙所以不能与阿里云服务器同步(我目前不会关,所以需要手动去阿里云服务器设置一下)

    安全组配置-->配置规则 (就可以他添加你想要的端口了)

    三、安装Python(这里就可以用Xshell进行操作)

    因为CentOS 7.6 64位自带Python2,所以我们这里重新安装Python3

    我这里安装的是Python3.7

    这里提醒大家千万不要将python2删除,因为有些系统功能依赖python2,所以我们只要添加python3就可以。

    首先安装依赖包,centos里面是-devel,如果在ubuntu下安装则要改成-dev,依赖包缺一不可

    sudo yum -y groupinstall "Development tools"
    sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

    然后下载python3.7的安装包(这里安装需要些时间,我们可以在Xshell在打开一个窗口,进行安装nginx的步骤,两个可以一起执行)

    wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz

     解压下载包

    tar -xvJf  Python-3.7.3.tar.xz

     编译安装

    cd Python-3.7.3
    ./configure --prefix=/usr/local/bin/python3
    sudo make
    sudo make install

     创建软连接

    ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3
    ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3

    最后输入命令python3 --version检查一下是否安装成功

     

    四、安装nginx

    http://nginx.org/en/download.html  在这里获取最新版的下载链接

    wget http://nginx.org/download/nginx-1.17.6.tar.gz # 下载文件到服务器
    tar -zxf nginx-1.17.6.tar.gz # 解压缩文件
    cd nginx-1.17.6/
    sudo ./configure # 以 root 身份运行
    sudo make && make install # 以 root 身份运行

    补充一下nginx的相关命令

    首先要进入nginx启动目录下面  默认目录/usr/local/nginx/sbin
    ./nginx #启动
    ./nginx -s stop # 快速停止
    ./nginx -s quit # 优雅停止
    ./nginx -s reload # 重新加载配置文件
    ./nginx -s reopen # 重启日志文件,备份日志文件时常用
    ./nginx -t # 测试 Nginx 配置文件
    ./nginx -v # 查看 Nginx 版本
    ./nginx -V # 查看 Nginx 版本、编译版本和编译参数

    也可以通过命令sudo find / -name nginx 查找nginx 

     因为80端口被宝塔占用,所以这里需要重新配置一下nginx.conf的文件,

     找一个没有用的且后台开启的端口进行测试。

    五、安装python虚拟环境

    注意:建议使用这个命令安装virtualenv --python=/usr/bin/python3 vnev(虚拟环境名称)

    以前用的pip3 install virtualenv命令安装  会出现这个错误ImportError: No module named 'encodings'

    创建一个文件夹,在里面创建运行环境

    virtualenv [虚拟环境名称] 
    virtualenv venv #我创建的虚拟环境名称是venv

    激活虚拟环境 

    cd venv
    source ./bin/activate

     退出虚拟环境

    deactivate

     六、安装uWSGI

    在非虚拟环境中安装uWSGI

    pip3 install uwsgi

    通过sudo find / -name uwsgi命令找到uwsgi的位置

    然后创建软连接

    ln -s /usr/local/bin/python3/bin/uwsgi /usr/bin/uwsgi

    测试uwsgi,首先创建一个test,py的文件,并写入内容

    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello World"] # python3

    检查uwsgi版本

    uwsgi --version       

    2.0.18

    uwsgi --python-version

    3.7.3

    在test.py文件下执行uwsgi --http :8000 --wsgi-file test.py

    七、安装django并创建django并测试(在虚拟环境中测试)

    我这里创建了一个测试的django项目 本地测试

    python3 manage.py runserver 0.0.0.0:8000

    这里需要注意的是settings里面需要修改为“*”

    ALLOWED_HOSTS = ["*"]

    用uwsgi在测试一次

    uwsgi --http :8000 --module test_django.wsgi --py-autoreload=1

    module:项目文件夹路径 找到wsgi

    py-autoreload:热加载

    八、配置nginx、uwsgi

    1、找到nginx.conf  一般在/usr/local/nginx/conf目录下

    vim或者用宝塔修改文件内容

     server {
            listen       8000;    #我们要访问的端口
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                  include  uwsgi_params;    #
                uwsgi_pass 0.0.0.0:9000;  #uwsgi通过django运行的接口并返回给nginx
                root   html;
                index  index.html index.htm;
            }

    2、在项目目录下创建一个uwsgi.ini的文件(名字随意,运行这个文件就可以)

    #添加配置选择
    [uwsgi]
    #配置和nginx连接的socket连接
    socket=0.0.0.0:9000
    #配置项目路径,项目的所在目录
    chdir=/env/venv/test/test_django
    #配置wsgi接口模块文件路径
    wsgi-file=test_django/wsgi.py
    #配置虚拟文件的路径
    home=/env/venv
    #配置启动的进程数
    processes=4
    #配置每个进程的线程数
    threads=2
    #配置启动管理主进程
    master=True
    #配置存放主进程的进程号文件
    pidfile=uwsgi.pid
    #配置dump日志记录
    daemonize=uwsgi.log
    #配置热加载
    py-autoreload=1 

     最后杀掉我们要用的端口 sudo fuser -k 8000/tcp    sudo fuser -k 9000/tcp  避免一会运行的时候冲突

    然后启动./nginx

    在uwsgi.ini的目录下启动  uwsgi --ini uwsgi.ini

    浏览器:39.97.97.51:8000/test/

  • 相关阅读:
    手机屏幕边缘发黄(抢救处理)
    Error parsing HTTP request header 错误解决方法
    SpringBoot项目部署到外部Tomcat重复启动的解决方法
    手机文件管理中网络邻居的使用方法
    解决Tomcat启动过程中报错org.springframework.jmx.export.UnableToRegisterMBeanException
    SpringBoot打成war包后Tomcat无法访问静态资源问题
    Springboot如何使用外部tomcat容器
    Maven打包并入本地jar包
    Excel小技巧之VLOOKUP()使用简单说明
    java.io.IOException: Server returned HTTP response code: 403 for URL
  • 原文地址:https://www.cnblogs.com/maplethefox/p/12050138.html
Copyright © 2011-2022 走看看