安装、配置 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
查看 是否启动成功。