前一讲: 创建游戏界面(详细操作步骤)https://www.acwing.com/blog/content/33157/
为容器添加映射 80 和 443 端口
由于 Docker 容器运行起来之后无法再动态添加端口,所以需要先停掉服务,保存成镜像,再重新创建一个新的容器时添加端口映射。
1、关闭容器中所有运行的服务,包括 django 服务(Ctrl + c)和 tmux 页面(Ctrl + d)
2、登录到装载容器的服务器后
docker commit CONTAINER_NAME django_lesson:1.1 # 讲容器保存成镜像
docker stop CONTAINER_NAME # 关闭容器
docker rm CONTAINER_NAME # 删除原容器
# 使用保存的镜像重新生成容器,开放所需要的端口
docker run -p 20000:22 -p 8000:8000 -p 80:80 -p 443:443 --name CONTAINER_NAME -itd django_lesson:1.1
3、到服务器云平台的控制台安全组中开放 80 和 443 端口(默认应该是开了)
创建 AcApp
输入 服务器的 IP 地址
Nginx 的配置文件:从链接里拿到内容写到 /etc/nginx/nginx.conf
(修改 /etc
目录下的内容需要 sudo 权限)
创建证书相关的文件,新建目录 cert
- 创建
acapp.key
和acapp.pem
,内容从链接抄过来
启动 Nginx
sudo /etc/init.d/nginx start
如果启动失败,重新加载配置文件,会有报错位置显示,一般就是 nginx.conf 写错了。
或者查看日志文件报错信息,cat /var/log/nginx/error.log
sudo nginx -s reload
配置文件中如果用户名不是 acs
,/acs
搜索,n
切换下一个,把所有的 acs
换成自己的用户名,比如我的就是 tonngw
。
PS: 抄的时候
:set paste
,进入 vim 编辑模式再抄,不然就抄错了hhh
修改 django 的配置
-
settings.py
配置:将 acapp 的域名添加到acapp/acapp/settings.py
的ALLOWED_HOSTS
中,不要加https://
,并且将DEBUG
改成False
,调整成线上模式。 -
将
static
文件归档:把所有的static
目录下的东西放到根目录的static
目录下。
shell
python3 manage.py collectstatic
y 总金句:先把项目跑起来再说,不需要过多了解细节,用到了再学,人生有限!
配置 uwsgi
uwsgi 是一个高性能 C 语言服务器,因为 Django 是单线程处理任务的,并发能力很差,所以通常会通过 wsgi 协议搭配 uwsgi 来使用
[uwsgi]
socket = 127.0.0.1:8000
chdir = /home/tonngw/acapp
wsgi-file = acapp/wsgi.py
master = true
processes = 2 ; 进程个数
threads = 5 ; 每个进程中的线程个数
vacuum = true
关掉 django server,启动 uwsgi 服务
uwsgi --ini scripts/uwsgi.ini
填写信息
填写 acapp 中剩下的选项信息,比如
- css 地址:
https://app2306.acapp.acwing.com.cn/static/css/game.css
- js 地址:
https://app2306.acapp.acwing.com.cn/static/js/dist/game.js
- 主类名:
AcGame
填完之后保存提交,安装 acapp 点击打开应用就可以看到效果了!