分享好友 最新动态首页 最新动态分类 切换频道
项目部署 Nginx+Docker
2024-12-27 11:24

Nginx(发音同engine x)是一款基于异步框架的轻量级/高性能的Web服务器/反向代理服务器/缓存服务器/电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔·赛索耶夫)所开发,最初供俄国大型网站Rambler.ru及搜寻引擎Rambler使用。

特点
优点

高并发量:基于 epoll/kqueue 模型开发,支持高并发量,官方说其支持高达 5w 并发连接数的响应
内存消耗少:善于处理静态文件,相较于其他web(比如:apache),占用更少的内存及资源
简单稳定:配置简单(一个conf文件),运行简单(nginx命令),而且运行稳定
模块化程度高:功能模块插件化设计,可以自由配置相应的功能
低成本:Nginx的负载均衡功能很强大而且免费开源,相较于几十万的硬件负载均衡器成本相当低
缺点

动态处理差:nginx善于处理静态文件,但是处理动态页面相较于Apache之类重量级的web软件能力稍欠缺

项目定位:静态文件展示、动静分离

基本操作

① 安装Nginx

 

② 检查效果

 

③ 服务器相关命令

 
  • 角色:Web服务器/反向代理服务器/缓存服务器/邮件代理服务器
  • 特点:高并发、简单稳定、模块化、低成本

配置解析

 
 
 
 

作用:指定客户端请求的html文件所在目录路径

默认:root /var/www/html;

④ index属性

作用:指定客户端请求时默认返回的文件

默认:index index.html index.htm index.nginx-debian.html;
5. location 配置段
作用:location 主要是根据server匹配到的请求路径去处理和响应

 
 

② 匹配优先级


样例配置
进入/etc/nginx/conf.d目录下,并创建server.conf配置文件

 

进阶实践:root和alias区别

root和alias所起的作用都是指定响应请求所用文件的路径,只是他们有些许的区别

 

结果

 

反向代理

① 从用途上来讲

正向代理:为局域网客户端向外访问Internet服务,可以使用缓冲特性减少网络使用率。
反向代理:为局域网服务器向外提供Internet服务,可以使用负载平衡提高客户访问量,还可以基于高级URL策略和管理技术对服务进行高质量管控。
② 从用途上来讲

正向代理:必须采取安全措施确保内网客户端通过它访问外部网站,隐藏客户端的身份。
反向代理:对外提供服务是透明的,客户端并不知道自己访问的是一个代理,隐藏服务端的身份。

配置介绍

① 配置示例

 

② 属性详解
proxy_pass指令设置被代理服务器的地址和被映射的URI,地址可以使用主机名或IP加端口号的形式

③ uwsgi模块

nginx善于做静态文件相关的代理,而不擅长动态相关的代理,所以nginx的uwsgi模块就出现了,它主要做动态相关的代理工作

 
 

负载均衡是什么

我们之前使用proxy_pass的方式实现了nginx代理请求到后端的效果,随着我们的网站访问量越来越多,一个后端就不现实了,那么接下来我们应该如果在访问量日渐增大的情况下,满足线上业务的稳定呢

解决方法就是:负载均衡

负载均衡简单说来人多力量大,打群架。

在nginx中的负载均衡主要有两种:四层负载(ip:port)、七层负载(http://xxx)

① 配置示例

 

② 属性详解

upstream:主要是定义一个后端服务地址的集合列表,每个后端服务使用一个server命令表示

upstream {} 和 server {} 两部分内容属于平级关系。
uwsgi.ini 配置文件

 

进入uwsgi.ini 启动服务

 

基本配置

 

后端状态

在upstream模块中,可以使用server命令指定后端服务器的地址,同时还可以设置后端服务器在负载均衡调度中的状态,常用的状态有以下几种

down:表示当前server主机暂时不参与负载均衡。
backup:后备主机,当所有非backup机器出现故障或者繁忙的时候,才会请求backup机器。
max_fails:允许请求的最大失败数,默认为1,配合fail_timeout一起使用
fail_timeout:经历max_fails次失败后,暂停服务的时间,默认为10s。

调度算法

官方资料:http://nginx.org/en/docs/http/ngx_http_upstream_module.html#example

Nginx提供的负载均衡策略有两大类

内置策略:nginx自带的算法
雨露均沾型:轮训、加权轮训、哈希
定向服务型:ip_hash、least_conn、cookie、route、lean
商业类型:ntlm、least_time、queue、stick
扩展策略:各种结合业务场景自定义的算法或者第三方算法
自定义算法
第三方算法:fair、url_hash
常用算法简介

轮询(默认):请求按顺序逐一分配到不同的后端服务器。
weight:指定轮询权重,值越大,分配到的几率就越高,适用于后端服务器性能不均衡情况。
ip_hash:按访问IP的哈希结果分配请求,分配后客户端访问固定后端服务器,有效的解决动态网页会话共享问题。
fair:基于后端服务器的响应时间来分配请求,响应时间短的优先分配。
url_hash:按访问URL的哈希结果分配请求,使同一URL定向到同一台后端服务器,可提高后端缓存服务器的效率。

nginx 日志

① 日志简介

nginx默认提供了两个日志文件:access.log和error.log。
access.log:可以得到用户请求的相关信息
error.log:可以获得某个web服务故障或其性能瓶颈等信息

② 基本配置

 

日志配置格式

 

默认日志格式

 
 

基本知识

Docker是一个开源的容器引擎,它基于LXC容器技术,使用Go语言开发。源代码托管在Github上,并遵从Apache2.0协议。

Docker采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。

简单来说:Docker就是一种快速解决业务稳定环境的一种技术手段,可以快速构建项目运行所依赖的环境。

Docker官网:http://www.docker.com

Github Docker源码:https://github.com/docker/docker

角色组成
Docker镜像(image:它是一个只读的文件,就类似于我们安装操作系统时候需要的那个iso光盘镜像,通过运行这个镜像来完成各种应用的部署。这里的镜像就是一个能被docker运行起来的一个程序。
Docker容器(container:容器就类似于我们运行起来的一个操作系统,而且这个操作系统启动了某些服务。这里的容器指的是运行起来的一个Docker镜像。
Docker仓库(repository):仓库就类似于我们在网上搜索操作系统光盘的一个镜像站。这里的仓库指的是Docker镜像存储的地方。

Docker安装

2.1 安装过程
① 使用阿里云的安装源

 

② 安装依赖软件

 

③ 安装docker软件

 

apt-get install docker-ce= -y
④ 查看docker服务状态

systemctl status docker
:ubuntu安装完毕后,默认就开启服务了

⑤ 网卡区别

安装前:只有ens33和lo网卡

安装后:docker启动后,多出来了docker0网卡,网卡地址172.17.0.1

⑥ docker服务命令

systemctl [参数] docker
参数详解
start 开启服务
stop 关闭
restart 重启
status 状态

镜像管理

操作命令

1)搜索镜像

 

2) 获取镜像

 

3)查看本地镜像

 

镜像的ID唯一标识了镜像,如果ID相同,说明是同一镜像。TAG信息来区分不同发行版本,如果不指定具体标记,默认使用latest标记信息。
4)查看镜像历史

 
重命名、删除

1)镜像重命名

 

2)删除镜像

 

3)导出、导入
1)导出镜像
将已经下载好的镜像,导出到本地,以备后用

 
 

2)导入镜像

 

容器管理

基本命令

1)查看容器

 

2)创建容器

 
 

启动命令参数详解

  • –name:给容器指定一个名称
  • -i:让容器的标准输入保持打开
  • -t:让docker分配一个伪终端,并绑定到容器的标准输入上
  • /bin/bash:容器其中时执行一个命令
    3)停止、启动容器
 

4)进入正在运行的容器

 

5)删除容器

 
基于容器创建镜像
 
容器运行日志和详细信息

1)容器运行过程中产生的日志

 

2)查看容器信息

 

数据管理

在容器运行过程中,可能会产生一些数据,当容器被停止,重启或者删除时,容器中的这些数据就会丢失,若想要将这些数据持久化保存,就需要用到数据卷和数据卷容器

  • 数据卷
    将宿主机的某个文件或目录,映射到容器中,作为数存储的目录或者文件,那么我们就可以在宿主机进行数据的存储
    -v:参数的作用是将宿主机的一个目录或文件(绝对路径)作为容器的数据卷挂载到docker容器中,使宿主机和容器之间可以共享一个目录,如果本地路径不存在,docker也会自动创建。
    命令格式
 

创建两个容器 vc-test1 和 vc-test,同时挂载vc-test 数据卷容器

 

网络管理

默认情况下,容器和宿主机之间的网络是隔离的,为了让容器使用网络,我们可以采用两种方式端口映射和网络模式

  • 端口映射
    可以通过端口映射的方式,将容器中的端口,映射到宿主机的某个端口上。可以通过ip:port
    ② 端口映射种类

随机映射
指定映射
注意:生产场景一般不使用随机映射,但是随机映射的好处就是由docker分配,端口不会冲突,不管哪种映射都会影响性能,因为涉及到映射。

③ 端口映射命令

 

随机映射

 

指定映射

 

最新文章
国内可以24小时挂机的云电脑有哪些?
随着云计算技术的发展,越来越多的人需要使用云计算机。云计算机可以帮助我们随时随地访问桌面环境和应用程序,而不必担心数据丢失和缺乏计算能力。本文将为大家介绍几款可以24小时挂机的国产云电脑主机。1.阿里云阿里云是中国最大的云计算
澄迈爱采购代运营费用
百度爱采购服务商浅谈:上传产品图片需要注意的地方 百度爱采购服务商浅谈:上传产品图片需要注意的地方,不同的商品质量影响着商品的排序程度,主要因素有类目优化程度、图片质量、参数丰富度、时间、地域等,下面来了解下百度爱采购上传
解决方案:如何确保网站被百度收录并提升网站内容质量与优化技术
确保网站被百度收录,对网站的进步极为关键。这表示网站能够吸引更多访客,获得更广泛的关注。网站内容质量网站内容必须保证高水准和原创性。若是内容只是简单的抄袭和拼凑,百度是不会给予关注的。内容要有实际价值,比如提供实用的信息。
数学老师职称工作总结
总结是对某一阶段的工作、学习或思想中的经验或情况进行分析研究的书面材料,它是增长才干的一种好办法,是时候写一份总结了。如何把总结做到重点突出呢?下面是小编收集整理的数学老师职称工作总结,仅供参考,希望能够帮助到大家。在教学
收藏!这些超好用的Presentation神器,10个留学生9个都在用!
转眼进入12月,随之而来的还有让留学生们心慌发冷的Final。除了写不完的paper,还有做不完的presentation。更伤的是,光一个PPT有时还不能解决越来越复杂的课业问题。然而deadline近在眼前,实在是熬不过啊!猪队友是靠不住了,你需要这些
拼多多外链开放:外链建设规划及执行方案
一、外链建设目标通过外链建设,达到以下目标:* 提高拼多多网站在搜索引擎中的排名和可见度* 吸引高质量流量至拼多多网站* 提升品牌影响力和知名度二、目标受众分析确定外链建设的目标受众,包括:网购者、行业博主、新闻媒体等。三、外链
网易高管解读Q1财报:希望未来海外市场占比达到50%
5月24日,网易公布了2022年第一季度财报。一季度,网易净收入236亿元人民币;归属于公司股东的净利润为44亿元;研发投入34亿元,研发投入强度达14%。在随后的财报电话会上,网易CEO丁磊、CFO杨昭烜等高管就财报和业务发展做出解读。当投资人
如何利用黄页引流推广网站入口提升业务曝光度
在当今数字化时代,企业正面临日益激烈的市场竞争,尤其是在网络上的营销和推广活动成为了重中之重。许多企业往往忽视了一个传统而有效的工具——黄页。虽然黄页在互联网时代并不如从前那般受宠,但其潜在的引流能力依然不可小觑。充分利用
抖音短剧系统快速搭建,部署上线维护全包,支持媒资管理/广告回传
标题:抖音短剧系统一站式服务,快速搭建,无忧运营!正文:随着短视频行业的蓬勃发展,短剧作为一种新兴的短视频形式,迅速吸引了大量用户的关注。为了帮助广大开发者轻松踏入短剧制作与运营的领域,南阳迈特推出了一款领先的短剧系统——
相关文章
推荐文章
发表评论
0评