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

Posted niuxingyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在阿里云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 Django==2.0.4

pip3 install djangorestframework

pip3 install django-cors-headers

pip3 install celery

pip3 install celery-with-redis

pip3 install django-celery

新建工程,并且测试

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就可以了

测试mysql服务

技术图片

 

安装redis

yum install redis

启动服务
systemctl start redis

查看版本号
redis-cli --version

设置开机启动
systemctl enable redis.service

测试redis服务

技术图片

安装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

测试mongo

技术图片

安装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

#修改配置文件

vi /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

查看服务

ps aux|grep uwsgi

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

技术图片

大功告成

以上是关于在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4的主要内容,如果未能解决你的问题,请参考以下文章

阿里云centos7.6服务器搭建discuz论坛详细步骤

阿里云服务器中Linux下centos7.6安装mysql8.0.11

基于阿里云服务器ECS CentOS7.6+WordPress Nginx 配置HTTPS

CentOS7.6 安装配置

在Centos7.6上配置mysql主从

在Centos7.6上配置mysql主从