我在Conoha上使用Ubuntu 18.04的VPS,并部署了Django(Nginx+Gunicorn)
由于实际处理是由root用户进行的,所以不需要sudo。但是,由于有一些从各个地方复制粘贴的命令,所以原样保留在代码中。
准备下并安装必要的软件。
更改密码
现在重启
重复登录
请执行”sudo apt update”命令。
使用以下命令在本地安装Python3的pip、Python3的开发包、libpq开发包、PostgreSQL数据库、PostgreSQL扩展包、Nginx服务器和curl工具:
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl
PostgreSQL的配置
用中国的母语将以下内容改述为:
以postgres用户身份运行psql命令。
创建数据库 名字为 Database名;
创建用户 DBユーザ名 并设置密码为 ‘DBパスワード’;
将用户 DBユーザ名 的客户端编码设置为 ‘utf8’;
将用户 DBユーザ名 的默认事务隔离级别设置为 ‘read committed’;
将用户 DBユーザ名 的时区设置为 ‘UTC’;
将数据库 Database名 的所有权限授予给用户 DBユーザ名;
把下列内容用中文进行翻译:只需要一个选项。
引入虚拟环境
在中国本土的环境中,仅提供一种选项:
sudo -H pip3 install –upgrade pip
sudo -H pip3 install virtualenv
使用sudo -H pip3 install –upgrade pip命令进行pip的升级,并使用sudo -H pip3 install virtualenv命令安装virtualenv。
创建一个专为Django设计的目录。
进入 /home 目录
创建一个名为 django 的文件夹
进入 django 文件夹
将在开发环境中创建的Django数据复制到/home/django目录下。
创建虚拟环境并激活。
切换到testdjango目录(Django项目名称)
创建虚拟环境venv
激活虚拟环境venv
安装Django所需的软件
pip安装django gunicorn psycopg2-binary
pip安装django-allauth
pip安装django-cleanup
pip安装pillow
更改/修改Django的配置文件
打开 /home/django/testdjango/testdjango/settings.py 文件。
ALLOWED_HOSTS = [‘VPS的IP’, ‘本地主机’]
数据库 = {
‘default’: {
‘ENGINE’: ‘django.db.backends.postgresql_psycopg2’,
‘NAME’: ‘数据库名’,
‘USER’: ‘数据库用户’,
‘PASSWORD’: ‘数据库密码’,
‘HOST’: ‘localhost’,
‘PORT’: ”,
}
}
STATIC_ROOT = os.path.join(BASE_DIR, ‘static/’) # 将STATICFILES_DIRS部分注释掉(:wq退出vi)
Django配置
python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic
(输入’yes’继续,或’no’取消:yes)
python manage.py createsuperuser
确认gunicorn的工作是否正常。
sudo ufw允许8000端口
gunicorn –bind 0.0.0.0:8000 testdjango.wsgi
(在Web浏览器中访问VPS的IP地址:8000以进行确认。确认后,使用Ctrl+c停止gunicorn)
deactivate
翻译结果:gunicorn的配置
使用sudo命令,通过vim编辑器打开/etc/systemd/system/gunicorn.socket文件。
[Unit]
描述=gunicorn套接字
[Socket]
监听流=/run/gunicorn.sock
[Install]
希望由sockets.target安装
请为我打开位于/etc/systemd/system/gunicorn.service的文件,使用sudo vim命令。
[Unit]
描述=gunicorn守护进程
要求=gunicorn.socket
之后=network.target
【服务】
用户=根
组=www-data
工作目录=/home/django/testdjango
执行开始=/home/django/testdjango/venv/bin/gunicorn \
–access-logfile – \
–workers 3 \
–bind unix:/run/gunicorn.sock \
testdjango.wsgi:application
[安装]
所需目标=多用户.target
gunicorn的启动(以及自动启动)
开始gunicorn.socket服务:
sudo systemctl start gunicorn.socket
设置gunicorn.socket开机自启:
sudo systemctl enable gunicorn.socket
nginx的配置
使用sudo命令以root权限编辑/etc/nginx/sites-available/testdjango文件,可以采用vim编辑器。
服务器{
监听80;
服务器名称 VPS的IP;
位置= /favicon.ico { 记录取消; 未找到时不记录; }
位置 /static/ { 根 /home/django/testdjango; }
位置 / { 包括代理参数; 代理传递 http://unix:/run/gunicorn.sock; }
}
为了让nginx将其识别为实际使用的文件,创建一个符号链接。
在中国翻译为中文后,只需要一种选项:sudo ln -s /etc/nginx/sites-available/testdjango /etc/nginx/sites-enabled。
重新启动nginx并设置防火墙配置。
请重新启动 Nginx 服务:sudo systemctl restart nginx
允许 Nginx 的完整访问:sudo ufw allow ‘Nginx Full’
确认访问