• 阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4


    当你购买了阿里云的ecs,涉及ecs的有两个密码,一定要搞清楚,一个密码是远程链接密码,也就是通过浏览器连接服务器的密码,另外一个是实例密码,这个密码就是ecs的root密码,一般情况下,我们经常用到的是实例密码。

     与此同时,需要设置一下安全组策略,将一些必要的端口暴露出来,否则会被拦截

    前置操作完成,就可以进行软件的安装了,可以通过一些三方的ssh软件进行连接,win下面流行的putty,xshell,moba等,这里推荐使用moba,可以语法高亮并且自动记住密码

        安装python3 和 django 以及一些django扩展

    yum install epel-release
    
    yum install python36
    
    wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
    
    python3 get-pip.py
    
    安装django
    pip3 install pymysql
    
    pip3 install pillow
    
    pip3 install pycryptodome
    
    pip3 install cryptography
    
    pip3 install Django==2.0.4
    
    pip3 install djangorestframework
    
    pip3 install django-cors-headers
    
    pip3 install celery
    
    pip3 install celery-with-redis
    
    pip3 install django-celery
    pip3 install dwebsocket
    安装opencv-python
    
    yum  install  numpy  opencv*
    pip3 install opencv-python
    yum whatprovides libstdc++.so.6
    yum install libstdc++-4.4.7-3.el6.i686
    yum install libSM-1.2.2-2.el7.x86_64 --setopt=protected_multilib=false

    新建工程,并且测试

    django-admin startproject mypro
    cd mypro
    python3 manage.py runserver 0.0.0.0:8000

    安装mysql
    wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
    
    rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
    
    yum install -y mysql-community-server
    #启动服务
    systemctl start mysqld
    #查看服务状态
    systemctl status mysqld
    
    查看数据库密码
    grep 'temporary password' /var/log/mysqld.log
    
    然后利用这个密码进入mysql命令行 mysql -uroot -p查到的密码
    
    SET PASSWORD = PASSWORD('Admin123!');
    
    设置远程登录
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin123!' WITH GRANT OPTION;
    flush privileges;
    
    vim /etc/my.cnf
    在[mysqld]下面添加,不需要分号
    字符集:注意是utf8而不是utf-8!
    character-set-server=utf8
    这时候使用show variables like 'char%';就可以查看到字符集都是utf8了
    sql支持group by语句
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    设置时区为东八区
    default-time_zone = '+8:00'
    
    重启服务
    systemctl restart mysqld
    
    设置开机启动
    systemctl enable mysqld
    systemctl daemon-reload
    
    如果需要更改为简单的密码
    
    1.停止mysql服务
    
    systemctl stop mysqld.service
    
    
    2.修改配置文件无密码登录
    
    vim  /etc/my.cnf
    
    在最后加上
    
    skip-grant-tables
    
    保存
    
    3.启动mysql
    
    systemctl  start  mysqld.service
    
    
    4.登录mysql
    
    mysql -u root
    
    注意这里不要加-p
    
    5.修改密码,mysql5.7用此语法
    
    use mysql;
    
    update mysql.user set authentication_string=password('123456') where user='root' ;  
    
    6.回到第二部把刚加的那句删掉
    
    保存,重启mysql就可以了
    安装redis
    yum install redis
    
    启动服务
    systemctl start redis
    
    查看版本号
    redis-cli --version
    
    设置开机启动
    systemctl enable redis.service

    安装mongodb

    vim /etc/yum.repos.d/mongodb-org-3.4.repo
    
    #添加以下内容:
    [mongodb-org-3.4]  
    name=MongoDB Repository  
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/  
    gpgcheck=0
    enabled=1  
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
    
    清空缓存
    yum makecache
    
    安装
    yum -y install mongodb-org
    
    启动服务
    systemctl start mongod.service
    
    停止服务
    systemctl stop mongod.service
    
    查看服务状态
    systemctl status mongod.service
    
    重启服务
    systemctl restart mongod.service

    安装nginx

    #设置源
    sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    
    #安装
    yum install -y nginx
    
    #启动服务
    systemctl start nginx.service
    
    #关闭服务
    systemctl stop nginx.service
    
    #开机自启
    systemctl enable nginx.service
    
    #修改配置文件
    
    vim /etc/nginx/conf.d/default.conf
    
    改成下面的配置
    
    server {
        listen       80;
        server_name  localhost;
    
        access_log      /root/myweb_access.log;
        error_log       /root/myweb_error.log;
    
    
        client_max_body_size 75M;
    
    
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
            uwsgi_param UWSGI_SCRIPT mypro.wsgi;
            uwsgi_param UWSGI_CHDIR  /root/mypro;
    
        }
    
        location /static {
            alias /root/mypro/static;
        }
    }
    
    设置项目权限
    chmod -R 755 /root/mypro
    #修改配置
    vim /etc/nginx/nginx.conf
    将第一行改为 user root;
    然后重启nginx
    测试nginx服务,这里注意下,在不修改nginx配置文件的时候才会出现下面的欢迎页面,如果修改了以后是不能访问默认欢迎页面的


    安装uwsgi


    uWSGI本身也是web服务器,但因为性能不高,通过nginx中转能够发挥更好的效果
    
    安装依赖
    yum install python36-devel
    
    安装
    pip3 install uwsgi
    
    软连接
    ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
    
    进入项目目录启动服务
    uwsgi --http :8000 --module mypro.wsgi
    
    效果和 python3 manage.py runserver 0.0.0.0:8000一致
    
    热启动
    uwsgi --http :8000 --module mypro.wsgi --py-autoreload=1
    
    进入项目,编写uwsgi.ini配置文件 vim mypro_uwsgi.ini
    
    [uwsgi]
    
    chdir           = /root/mypro
    module          = mypro.wsgi
    master          = true
    processes       = 3
    socket            = 0.0.0.0:8000
    # chmod-socket    = 664
    vacuum          = true
    pythonpath      = /usr/bin/python3
    daemonize  = /root/mypro/uwsgi.log
    启动项目,这里需要注意下,如果你想用uwsgi独立访问网站,就需要把上面配置文件中的socket改成http,如果想用nginx代理,就写成socket
    
    uwsgi --ini mypro_uwsgi.ini
    
    后台启动
    
    uwsgi -d --ini mypro_uwsgi.ini


    杀死和关闭 uwsgi服务
    killall -s INT /usr/local/bin/uwsgi   (kill -9 进程号)
    
    查看服务
    
    ps aux|grep uwsgi

    最后,nginx通过监听80端口反向代理uwsgi启动的django服务,访问网站进行测试

     
  • 相关阅读:
    内存泄露检测工具之DMalloc
    五年后你在何方
    程序员技术练级攻略
    Windows编程革命简史
    su的时候密码认证失败的解决方法
    ruby 元编程 meta programming
    内存对齐分配策略(含位域模式)
    Ruby 之 Block, Proc, Lambda 联系区别,转载
    c++异常处理机制示例及讲解
    ruby 常见问题集 1 不断更新中
  • 原文地址:https://www.cnblogs.com/xcsg/p/10823297.html
Copyright © 2020-2023  润新知