2.安装、配置 Nginx 和 Gunicorn 、Mysql

安装、配置 Nginx

大家首先以root 用户 登录Ubuntu主机,

执行命令 apt install nginx 安装好 Nginx

接下来我们需要配置Nginx。

按照上面的安装方式,Nginx的配置文件路径是: /etc/nginx/nginx.conf

当然我们可以使用vim去编辑这个文件,但是建议大家使用 winscp 连接 Linux主机并且,配置用notepad++远程打开。因为这样看起来更清楚,特别是配置文件中如果有中文,vi看起来可能会比较乱。

打开 Nginx 配置文件 /etc/nginx/nginx.conf ,修改其中的配置项,以满足你的网站需求。

下面是一个Nginx配置示例,列出了其中核心的配置

user  byhy;          # 用byhy用户运行Nginx进程
worker_processes  2; # 启动两个Nginx worker 进程

events {
    # 每个工作进程 可以同时接收 1024 个连接
    worker_connections  1024; 
}

# 配置 Nginx worker 进程 最大允许 2000个网络连接
worker_rlimit_nofile 2000;

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  30;

    gzip  on;
    
    # 配置 动态服务器(比如Gunicorn/Django)
    # 主要配置 名称(这里是apiserver) 地址和端口    
    upstream apiserver  {

        # maintain a maximum of 20 idle connections to each upstream server
        keepalive 20;

        server 127.0.0.1:8000; # 地址和端口
    }
   
    # 配置 HTTP 服务器信息
    server {
        # 配置网站的域名,这里请改为你申请的域名, 如果没有域名,使用IP地址。
        server_name  www.byhy.com;  

        # 配置访问静态文件的根目录, 
        # 如果是vue项目要先npm run bulid   然后把生成的dist目录放到这       
        root /home/byhy/bysms_frontend/z_dist;
        
        # 配置动态数据请求怎么处理
        # 下面这个配置项说明了,当 HTTP 请求 URL以 /api/ 开头,
        # 则转发给 apiserver 服务器进程去处理        
        location /api/      {
            proxy_pass         http://apiserver;
            proxy_set_header   Host $host;
        }
    }

}

修改好配置后,必须重启Nginx,可以执行命令

systemctl restart nginx

如果启动报错, 可以打开 /var/log/nginx/error.log 查看nginx的错误日志文件。

为了使http服务的 80端口可以从外部访问,需要我们让防火墙开放80端口。

对于Ubuntu 20 来说,就是执行命令

ufw allow 80

或者 ,下面的命令也行

ufw allow 'Nginx HTTP'

安装 Django

比较简单,执行如下命令

# 这是先安装pip
apt install python3-pip

# 再安装 Django
pip3 install Django -i https://pypi.douban.com/simple/

安装 Gunicorn

执行下面的命令安装 Gunicorn 和 它依赖的库 gevent 和 greenlet (异步模式需要)

pip3 install greenlet -i https://pypi.douban.com/simple/
pip3 install gevent    
pip3 install gunicorn

安装 MySQL,创建数据库和用户

MySQL在Ubuntu上的安装和初始设置 点击这里参考我们的教程

注意:教程中有 修改 mysql 绑定所有网络接口的设置, 如果你的机器是生产环境,通常不要这样做。

安装 好MySQL 服务后,执行 mysql 启动客户端 :

  • 先使用root用户创建数据库bysms,指定使用utf8的缺省字符编码,执行命令如下
CREATE DATABASE bysms CHARACTER SET utf8mb4  COLLATE utf8mb4_unicode_520_ci;
  • 再创建 bysms系统用来连接数据库的用户,保证该用户有访问 bysms数据库的权限,比如
CREATE USER 'byhy'@'localhost' IDENTIFIED BY 'Mima123$';
CREATE USER 'byhy'@'%' IDENTIFIED BY 'Mima123$';

随后输入如下命令,赋予byhy 用户所有权限,就是可以 该DBMS系统上 访问所有数据库里面所有的表

GRANT ALL ON *.* TO 'byhy'@'localhost';
GRANT ALL ON *.* TO 'byhy'@'%';

安装 MySQL 客户端库

执行 下面两个命令分别安装 MySQL 客户端开发库 和 Python 绑定库 mysqlclient

apt install libmysqlclient-dev  
pip3 install mysqlclient  -i https://pypi.douban.com/simple/

创建产品运行用户

通常我们需要为运行产品进程,比如 Nginx work进程、Gunicorn 等,创建一个专门的用户。

这里我们使用byhy用户

执行命令创建用户 adduser byhy 。

安装产品发布包

以root以后登录,执行如下命令安装工具:dos2unix 、unzip

apt install dos2unix
apt install unzip

然后再以 byhy用户 登录Linux 主机,下载拷贝 前端、后端 发布包 bysms_front_v1.5.zip 和 bysms_back_v1.5.zip 到 byhy 用户home目录下面,也就是 /home/byhy 。

实际项目中,发布包如果不能直接wget下载,可以使用 winscp 拷贝到 Linux 主机上。

然后执行下面的命令进行解压。

unzip bysms_front_v1.5.zip
unzip bysms_back_v1.5.zip

为了让Django认为你使用的虚拟机的IP地址或者域名是允许使用的, 需要修改settings.py 里面的配置项ALLOWED_HOSTS,加上一个你当前虚拟机的IP,也可以使用 '*' , 表示所有IP都可以。

ALLOWED_HOSTS = ['*','localhost','127.0.0.1']

然后进入到 目录 bysms_back_v1.5 中,

执行命令,让启动脚本符合linux文本格式,并且有可执行权限

dos2unix run.sh
chmod +x run.sh

创建数据库表

执行下面的命令, 让Django 在数据库中 创建 你的系统所需要的表

python3 manage.py makemigrations <your_app_label>
python3 manage.py migrate 

注意, <your_app_label> 需要替换成你的 Django 项目中的 app (只需要写包含了数据库表定义的App)的名字,可以是多个app,中间用空格隔开

开始我们要创建数据库的业务管理员账号,进入到manage.py所在目录,执行如下命令,

python3 manage.py createsuperuser

依次输入你要创建的管理员的 登录名、email、密码。

Username (leave blank to use 'byhy'): byhy
Email address: byhy@163.com
Password:
Password (again):
Superuser created successfully.

启动 Gunicorn/Django

进入到 byhy 用户home目录,执行命令 run.sh

然后,执行命令 ps -ef | grep python |grep gunicorn_conf |grep -v grep 查看 是否启动成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值