当前位置: 首页 > news >正文

C++学习之游戏服务器开发十二nginx和http

目录

1.容器运行游戏需求分析

2.静态编译游戏服务

3.手动创建游戏镜像

4.编写游戏启动脚本

5.脚本创建游戏服务器镜像

6.登录服务器架构选择

7.http协议初识

8.http报文分析

9.nginx简介和安装

10.nginx配置静态页面

11.nginx配置反向代理


1.容器运行游戏需求分析

2.静态编译游戏服务

3.手动创建游戏镜像

docker 的三大核心概念
镜像
静态的一组环境的集合
运行:创建容器,在容器中运行 XXXX
手动创建:
下载原始镜像
在基于该镜像运行 bash ,装所需软件
将装好软件的容器提交为新的镜像
脚本创建:
Dockerfile :规定镜像创建的过程
构建镜像

4.编写游戏启动脚本

容器
运行时的一组环境,基于某个镜像创建
容器的修改不会影响镜像 运行容器:
守护运行 -d
端口映射 : -p 外端口号 : 内端口号
共享文件系统: -v 外绝对路径 : 内绝对路径
容器开始于要运行的进程,结束于进程退出
删掉所有容器:
仓库( dockerhub
类似 github ,是一个存储镜像的公共仓库
docker pull 作者 / 镜像名 : 标签名 拉去镜像
docker push 分享镜像到仓库中(分享之前先改名 -- docker tag

5.脚本创建游戏服务器镜像

脚本创建 docker 镜像
1. 指定基础镜像( FROM XXXX
2. 装环境( RUN WORKDIR COPY
3. 指定执行点( ENTRYPOINT
ENTRYPOINT ["XXX"]
XXX 是且仅是镜像所运行的程序
CMD 命令指定你的内容会作为 XXX 的参数
run 镜像名 xxxx xxxx 会作为 XXX 的参数
CMD ["XXX"]
镜像缺省运行 XXX 程序
run 镜像名 xxxx :容器会执行 xxxx 程序

6.登录服务器架构选择

离线分发镜像
导出容器: docker export -o XXX.tar af85: 将容器中固化的内容导
导入镜像: docker import XXX.tar my_image:my_tag :导入的镜像
只包含原容器内的文件系统,缺失了镜像执行点,暴露端口,原镜
像的构建历史
查询程序依赖的动态库
ldd 程序名
do 1 cdocker rm `docker ps -aq` 静态编译游戏服务程序(部分依赖库静态链接到程序中的动
态编译)
原因:不想在容器中装诸多依赖项
查当前程序的依赖项
添加所有 依赖项 .a Makefile 的依赖中
去掉 Makefile -l 指定的链接库

7.http协议初识

8.http报文分析

脚本创建游戏服务器镜像
有可执行的程序,有姓名文件,有启动脚本
指定工作路径
拷贝文件
暴露端口
指定执行点(执行脚本)
登陆服务器架构选择
BS 架构
效率要求不高,客户端向和服务器之间的数据交互比较单一:一条
请求对应一条回复
http 协议承载数据

9.nginx简介和安装

http 协议
超(基于字符编码多媒体)文本(字符串)传输(基于短连接 tcp
协议
请求或回复头: 属性名:属性值
http 请求(浏览器 --- 》服务器)
GET 请求(只有请求头)
POST 请求(头 + 身体):头和身体直接有两个回车
http 回复(服务器 --- 》浏览器)
类型决定于请求类型
包含头和身体
头:状态吗( 200--- 》成功)
身体: html 文件(显示为网页)

10.nginx配置静态页面

Nginx
概念:轻量化 web 服务器(高效的处理 http 报文)
apt 或者 yum 安装
配置文件目录: /etc/nginx/
日志配置文件: /var/log/nginx/
测试命令: nginx -t
重新加载配置文件: nginx -s reload
nginx 配置静态页面
创作一个 html 文件
html 文件放到 server 配置段指定的 root 目录下
location 配置段: index html 文件名(指定首页)
浏览器输入 192.168.64.148/XXXX.html-----> 服务器会向浏览器返
XXXX.html 的内容

11.nginx配置反向代理

nginx 配置反向代理
规划 url 和对应的网页服务器
proxy_pass 被代理的服务 ;

相关文章:

  • Linux:简单自定义shell
  • 界面控件DevExpress WPF v25.1预览 - 支持Windows 11系统强调色
  • 【图像识别改名】如何批量识别多个图片的区域内容给图片改名,批量图片区域文字识别改名,基于WPF和腾讯OCR的实现方案和步骤
  • PLC互连全攻略:Profinet和EthernetIP实操演示
  • 极狐GitLab 项目功能和权限解读
  • GMS认证之 CTS Verifier认证新变化
  • 【前端】【业务逻辑】【面试】JSONP处理跨域原理与封装
  • Python 设计模式:回调模式
  • WebGis与WebGL是什么,两者之间的关系?
  • 【MCP Node.js SDK 全栈进阶指南】初级篇(6):MCP传输层配置与使用
  • 基于LightGBM-TPE算法对交通事故严重程度的分析与可视化
  • java 设计模式 原型模式
  • 【安装neo4j-5.26.5社区版 完整过程】
  • Linux系统用户迁移到其它盘方法
  • “融合Python与机器学习的多光谱遥感技术:数据处理、智能分类及跨领域应用”​
  • 在Windows上安装Git
  • AiEditor v1.3.8 发布
  • LeetCode---整数反转
  • 每日算法-250422
  • JavaFX实战:从零到一实现一个功能丰富的“高级反应速度测试”游戏
  • 阻燃材料点火就着引发一场火灾,河北一企业的产品被指不达标且涉嫌欺诈
  • 城事|喊侬白相,长兴太湖9号公路邀上海市民共赴诗意之旅
  • 北京潮白河大桥发生火情:部分桥体受损,现场已双向断路
  • 门票在“缩水”,古镇怎么办
  • 海南公布知识产权保护典型案例,一企业违规申请注册“中华”商标被处罚
  • 万斯偕印裔妻子访问印度,4天行程能否推进美印贸易谈判?