Nginx入门——Nginx的docker版本和windows版本安装和使用 代理的概念 负载分配策略

news2025/2/25 9:09:56

目录

  • 引出
  • nginx是啥
  • 正向代理和反向代理
    • 正向代理
    • 反向代理
  • nginx的安装使用
    • Docker版本的nginx安装
      • 下载
      • 创建挂载文件
      • 获取配置文件
        • 创建docker容器
        • 拷贝容器中的配置文件
        • 删除容器
      • 创建运行容器
      • 开放端口
      • 进行代理和测试
    • Windows版本的使用
      • 反向代理多个端口
      • 运行日志查看
      • 启动关闭重启
  • 负载分配的策略
    • 1.轮询法(默认方法)
    • 2.weight权重模式(加权轮询)
    • 3.ip_hash(解决session问题)
  • 总结

引出


1.Nginx反向代理,代理的概念,正向代理,反向代理;
2.docker版本的nginx配置,挂载启动,开放端口;
3.windows版本的使用,代理多个端口的方式;
4.负载分配的策略,轮询,权重,ip_hash方式;

在这里插入图片描述

nginx是啥

http://nginx.org/en/download.html

在这里插入图片描述

Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔寒索耶夫为俄罗访问量第二的Rambler.ru站点(俄文:PaM6nep)开发的,公开版本1.19.6发布于2020年12月15日。

rambler.ru

在这里插入图片描述

其将源代码以类[BSD许可证正的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。Nginx是一款轻量级的Wb服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-ike协议下发行。其特点是占有内存少,并发能力强,事实上ngix的并发能力在同类型的网页服务器中表现较好。

正向代理和反向代理

正向代理

正向代理时,由客户端发送对某一个目标服务器的请求,代理服务器在中间将请求转发给该目标服务器,目标服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。

正向代理核心:客户端非常明确要访问的服务器地址,客户端是需要配置代理服务的地址、端口、账号密码(如有)等才可使用的。正向代理服务器负责转发客户端的请求到目标服务器。

正向代理主要使用场景是客户端。由于网络不通等物理原因,需要通过正向代理服务器这种转发环节顺利访问目标服务器。当然,也可以通过正向代理对客户端某些信息进行伪装和改变。

在这里插入图片描述

反向代理

反向代理是一种代理服务器的配置模式,它代表服务器向客户端提供服务。客户端发送请求到反向代理服务器,然后反向代理服务器将请求转发到后端的真实服务器上,并将响应返回给客户端。简单理解为用户直接访问反向代理服务器就可以获得目标服务器的资源。这一过程叫反向代理

在这里插入图片描述

nginx的安装使用

Docker版本的nginx安装

下载

在这里插入图片描述

[root@localhost ~]# docker pull nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ... 
latest: Pulling from docker.io/library/nginx
a2abf6c4d29d: Already exists 
a9edb18cadd1: Pull complete 
589b7251471a: Pull complete 
186b1aaa4aa6: Pull complete 
b4df32aa5a72: Pull complete 
a0bcbecc962e: Pull complete 
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for docker.io/nginx:latest
[root@localhost ~]# 

创建挂载文件

nginx/conf nginx/logs nginx/html

[root@localhost software]# pwd
/usr/local/software
[root@localhost software]# mkdir -p nginx/logs nginx/cof nginx/html
[root@localhost software]# ls
6380  6381  6389  6390  6391  9361  canal  nacos  nginx  postgres  rabbitmq  redis  sentinel
[root@localhost software]# cd nginx/
[root@localhost nginx]# ls
cof  html  logs
[root@localhost nginx]# 

获取配置文件

创建docker容器

[root@localhost nginx]# docker run -it --name nginx -d nginx
09e7eb76a6e54e14f76a85bc5828af34432d57b33e0e976d5e08c219d7450161

在这里插入图片描述

拷贝容器中的配置文件

docker cp nginx:/etc/nginx/nginx.conf conf/

在这里插入图片描述

[root@localhost nginx]# docker cp nginx:/etc/nginx/nginx.conf conf/
[root@localhost nginx]# cd conf/
[root@localhost conf]# ls
nginx.conf
[root@localhost conf]# docker cp nginx:/etc/nginx/conf.d ./
[root@localhost conf]# ls
conf.d  nginx.conf
[root@localhost conf]# ll
总用量 4
drwxr-xr-x. 2 root root  26 823 21:47 conf.d
-rw-r--r--. 1 root root 648 1228 2021 nginx.conf
[root@localhost conf]# 

删除容器

[root@localhost conf]# docker stop nginx 
nginx
[root@localhost conf]# docker rm nginx 
nginx
[root@localhost conf]# 

创建运行容器

两个端口:

一个代理http协议

一个代理TCP

docker run -it \
--name nginx \
-p 9999:9999 \
-p 10999:10999 \
--privileged \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/software/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/software/nginx/html:/usr/share/nginx/html \
-v /usr/local/software/nginx/logs:/var/log/nginx \
-d nginx

在这里插入图片描述

查看日志

在这里插入图片描述

开放端口

开放两个端口9999和10999

[root@localhost conf]# firewall-cmd --zone=public --add-port=9999/tcp --permanent 
success
[root@localhost conf]# firewall-cmd --zone=public --add-port=10999/tcp --permanent 
success
[root@localhost conf]# firewall-cmd --reload
success
[root@localhost conf]# firewall-cmd --zone=public --list-ports
3306/tcp 15672/tcp 5672/tcp 2375/tcp 8848/tcp 9848/tcp 9999/tcp 10999/tcp
[root@localhost conf]# 

进行代理和测试

 	server {
        listen 9999;
        location /{
            proxy_pass https://www.bilibili.com;
        }
    }

在这里插入图片描述

代理百度测试:http://192.168.111.130:9999/

在这里插入图片描述

Windows版本的使用

http://nginx.org/en/download.html

在这里插入图片描述

start nginx --启动
nginx -s stop --停止
nginx -s reload --重启

反向代理多个端口

在这里插入图片描述

cmd命令启动nginx

在这里插入图片描述

运行日志查看

查看运行的日志文件

在这里插入图片描述

根据日志修改配置文件

在这里插入图片描述

再次启动,运行成功

在这里插入图片描述

启动关闭重启

在这里插入图片描述

负载分配的策略

负载均衡*(Load Balance)*其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

在这里插入图片描述

1.轮询法(默认方法)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器集群和纯静态页面服务器集群。

在这里插入图片描述

2.weight权重模式(加权轮询)

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大

在这里插入图片描述

3.ip_hash(解决session问题)

上述方式存在问题,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。

采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

在这里插入图片描述


总结

1.Nginx反向代理,代理的概念,正向代理,反向代理;
2.docker版本的nginx配置,挂载启动,开放端口;
3.windows版本的使用,代理多个端口的方式;
4.负载分配的策略,轮询,权重,ip_hash方式;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/923893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD的软件安装,使用(仅学习用途),中英文切换,背景颜色设置,AD工程组成即创建

1.百度网盘地址如下: 链接:百度网盘 请输入提取码 提取码:j2hf git地址如下:(软件过大,暂时没有完全上传至git仓库内,稍后更新) 2.安装: 一.使用百度网盘或者git下载后,双击点开…

数据中台容易失败的20多种原因全部在这里了

数据中台失败的原因总结 在当今数字化转型的浪潮中,数据中台作为关键的战略举措被越来越多的企业所关注和实施。然而,数据中台项目的实施过程中并不乏失败案例,这引业界对于数据中台失败原因的深入思考和分析。通过一些公开的信息和数据&…

开源社区的力量:合作与创新

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

68、使用aws官方的demo和配置aws服务,进行视频流上传播放

基本思想:参考官方视频,进行了配置aws,测试了视频推流,rtsp和mp4格式的视频貌似有问题,待调研和解决 第一步:1) 进入aws的网站,然后进入ioT Core 2)先配置 Thing types & Thing&#xff0c…

每日一题:leetcode 1267

这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务…

[管理与领导-44]:IT基层管理者 - 个人管理 - 从掌握管理知识开始入门:管理的常识和基础

目录 前言:管理框架 一、什么是管理 1.1 以终为始 1.2、资源的优化配置(人财物、权力、时间等资源) 1.2.1 资源的优化配置的步骤 1.2.2 管理者拥有的资源 1.2.3 管理者的权力资源 1.3 分而治之 1.3.1 分目标:细化和分解目…

个人微信AI聊天机器人

个人微信AI聊天机器人 微信AI机器人介绍产品介绍联系本人微信:yao_you_meng_xiang代码地址:https://github.com/xshxsh/weChatAiRobot 前期准备个人微信号Windows电脑注册AI模型账号 搭建使用注册AI账号注册讯飞账号创建应用申请API使用 安装微信 安装代…

概率密度函数 累积分布函数

概率密度函数:是指想要求得面积的图形表达式,注意只是表达式,要乘上区间才是概率,所以概率密度并不是概率,而是概率的分布程度。 为什么要引入概率密度,可能是因为连续变量,无法求出某个变量的…

FreeSWITCH 1.10.10 简单图形化界面2 - 并发性能测试

FreeSWITCH 1.10.10 简单图形化界面2 - 并发性能测试 0. 界面预览1. 测试工具批量创建baresip配置文件批量注册baresipSIP终端 2. 测试方法fsapi呼叫脚本 3 服务器环境CPU 配置内存配置 4 语音并发测试结果(1)1000分机,创建账号后&#xff0c…

大型商城小程序源码_免费开源_OctShop

毫无疑问小程序,对电商行业的商机是很明显的。相比h5/wap、公众号等商城,具备更大的发展空间。其次就是交易成本低,交易标准化、流量来源与转化多样化等优势,能让商户和买家更加方便、快捷的访问小程序,为用户提供更加…

商业经济杂志商业经济杂志社商业经济编辑部2023年第9期目录

专家论坛 黑龙江省经济高质量发展与生态环境保护耦合协调发展研究 刘降斌;祃玉帅; 1-5142 我国省际数字经济高质量发展水平综合评价研究 耿娟;毕晨曦; 6-8 振兴龙江《商业经济》投稿:cnqikantg126.com 数字经济背景下黑龙江省冰雪产业价值链的发展研究 …

哈夫曼树:优雅的数据编码之道

前言 在计算机科学领域,哈夫曼树(Huffman Tree)是一种令人惊叹的数据结构,它不仅可以高效地实现数据压缩,还能在信息传输和存储方面发挥重要作用。本文将从另一个角度深入探讨哈夫曼树的构建原理、编码过程以及应用案…

远程I0(遥控IO)

内容参考自串口连接云平台实现异地远程控制io模块(以综科智控的I/O为例)_io_智控_异地 根据个人理解,记录一下: 1、在A地,通过串口助手 发送开/关指令,控制B地的指示灯亮/灭 2、实现效果

==和===的区别(经典面试题,你不知道的细节)

全等运算符 又叫全等运算符,结果会返回一个布尔值,在数据类型相同的情况下,会比较值,值相同才返回true "1" 1 // false NaN NaN // false undefined undefined // true相等运算符 相等运算符在比较两个变量是否相…

【C++】构造函数和初始化列表的性能差距

构造函数和初始化列表的性能差距对比测试 1.说明 在C类和对象中,你可能听到过更加推荐用初始化列表来初始化类内成员。如果类内成员是自定义类型,则只能在初始化列表中调用自定义类型的构造函数。 但初始化列表和在构造函数体内直接赋值有无性能差距呢…

亚马逊买家不能评论有哪些原因?怎么解决

如果你在亚马逊平台无法发表评论,那么以下几个是原因及解决方法: 1、账户问题:如果你的亚马逊账户存在异常或限制,可能就会被禁止或限制在产品页面上发表评论。因此你需要确保你的亚马逊账户信息是完整和准确的,包括联…

Web 开发 Django 管理工具

上次为大家介绍了 Django 的模型,通过模型就可以操作数据库,从而就可以改变页面的展示内容,那问题来了,我们只能通过手动编辑模型文件来配置模型吗?当然不是,Django 为我们提供了强大的工具,可以…

【HTML】基础语法讲解

基础语法 1. HTML 结构1.1 认识HTML标签1.2 HTML 文件基本结构1.3 标签层次结构1.4 快速生成代码框架 2. HTML 常见标签2.1 注释标签2.2 标题标签:h1-h62.3 段落标签:p2.4 <br>换行标签2.5 格式化标签2.6 图片标签&#xff1a;img2.7 超链接标签&#xff1a;a2.8 表格标签…

ETLCloud轻量级数据中台解决方案

引言 随着信息时代的到来&#xff0c;数据已经成为企业的重要资源&#xff0c;如何高效地管理、分析和应用数据变得尤为关键。然而&#xff0c;许多企业在构建数据中台时面临着高昂的成本、复杂的架构和漫长的实施周期等问题。为了解决这些挑战&#xff0c;我们推出了ETLCloud…

Pinia基本概念

Pinia基本概念 面试题&#xff1a;Pinia 相比 Vuex 有什么样的优点&#xff1f;为什么现在官方推荐使用 Pinia &#xff1f; Pinia&#xff0c;是一个 Vue 阵营的新的状态管理库&#xff0c;现在 Vue 官方已经推荐使用 Pinia 来代替 Vuex&#xff0c;或者你可以把 Pinia 看作是…