Rhythmli's blog Rhythmli's blog
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Rhythmli

知识就是财富
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

  • GitHub技巧

  • Nodejs

  • 博客搭建

  • CSDN迁移

    • Spring IOC
    • Ngnix 阿里云
    • 最长回文子串
    • 面试题xuexixiexue
    • 哈希集合和哈希映射的简单设计
    • leetcode2021.11.03
    • Leetcode2021.11.2
    • JUC学习
    • 869. 重新排序得到 2 的幂
    • Java自动装箱拆箱
    • 55. 跳跃游戏
    • 剑指 Offer II 085. 生成匹配的括号
    • 300. 最长递增子序列
    • Java并发编程之美 01
    • 134. 加油站
    • 139. 单词拆分
    • 岛屿类问题题解
    • 138. 复制带随机指针的链表
    • 347. 前 K 个高频元素
    • 剑指 Offer II 026. 重排链表
    • 剑指 Offer II 025. 链表中的两数相加
    • 剑指 Offer II 014. 字符串中的变位词
    • 剑指 Offer II 010. 和为 k 的子数组
    • 剑指 Offer II 009. 乘积小于 K 的子数组
    • 剑指 Offer II 008. 和大于等于 target 的最短子数组
    • 剑指 Offer II 007. 数组中和为 0 的三个数
    • 剑指 Offer II 006. 排序数组中两个数字之和
    • 剑指 Offer II 002. 二进制加法
    • 129. 求根节点到叶节点数字之和
    • 113.路径总和 II
    • leetcode18. 四数之和
    • 编译OpenCV 以及 openc_contrib 提示缺少boostdesc_bgm.i文件出错的解决
    • fork()浅学习
    • SSM 增删改查
    • springmvc helloworld
    • Spring01 hello实验
    • 树的DFS和BFS
    • leetcode——二分法
    • Halo博客搭建
    • 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接---转载
    • opencv+python+OpenPose姿态实时识别
    • 03.KNN算法 李航统计学习方法
    • 02.感知机 李航统计学习方法
    • 01.最小二乘法拟合 李航统计学习方法
    • Pycharm atplotlib.pyplot图像不显示解决方法
    • 论文阅读01 SVM+kNN图像分类
    • Java简单实现计算器——用数组实现栈
    • 【剑指Offer3】无重复字符的最长子串
    • 【剑指Offer5】最长回文字符串
    • TF-IDF求取文本相似度
    • JAVA_day02
    • JAVA_day01
    • 递归产生回文数
    • 中国象棋QT登录注册以及悔棋功能
    • STM32F4学习笔记(基础介绍篇)
    • leetcode_04 递归,回溯与分治
    • leetcode03_贪心算法
    • leetcode01--链表
    • leetcode_02栈
    • Docker学习入门
    • C/C++编译与链接 程序员的自我修养:链接 装载和库
    • Nginx简单学习
      • Nginx
        • 1.原理
        • 1.1 mater 和 worker进程
        • 1.2 要点:
        • 1.3Nginx常用命令
        • 2.正向代理
        • 3.反向代理
        • 4.负载均衡
        • 5.动静分离
    • JAVA网络编程
    • JVM初步学习
    • Spring简单学习
    • 标准项目格式
    • 设计模式中的几个原则
    • Redis和IDEA简单创建及增删改查
    • Mybatis快速入门01
    • Redis全程学习笔记(附带学习的视频教程)
    • QT入门学习中最基础的那些事儿
    • QT中文输出错误问题:C2001
    • OOP:面向对象编程
    • LINUX常用命令集合(待续)
    • 《C和指针》简单学习笔记
    • 二叉树,栈存储及遍历小程序
    • 数据结构简单学习笔记
    • 扑克牌
    • C++动态内存和智能指针
    • 设计模式之简单工厂模式
    • leetcode_01数组
    • 嵌入式Linux移植应用
    • LINUX 进程与线程 信号量 通信
  • 技术
  • CSDN迁移
梁山话事人
最新推荐文章2026-08-07
目录

Nginx简单学习

原文链接:https://blog.csdn.net/qq_39355828/article/details/112632975 (opens new window)

# Nginx

Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的, 能经受高负

载的考验 有报告表明能支持高达 50,000 个并发连接数。主要用于四个方面的功能,正向代理,反向代理,负载均衡,动静分离。

# 1.原理

# 1.1 mater 和 worker进程

在这里插入图片描述

Ngnix内部的进程主要有两类,master 进程 和 worker 进程。其中 master 进程只有一个,worker 进程可以有多个。 worker 进程才是真正 working 的进程,才是真正处理请求的进程。worker 进程全部都是 master 进程的子进程。每多一个用户请求,master进程就fork一个worker进程。worker 进程是以普通用户的身份进行运行的,这样就可以极大增加程序的安全性。就算是万一有一个进程被劫持,那也不会有管理员权限。 、一个 master 和多个 woker 有两个好处:

(1)可以使用 nginx_s reload 热部署,利用 nginx 进行热部署操作( 在不打断用户请求的情况下更新版本 )

(2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的,继续进行争抢,实现请求过程,不会造成服务中断

# 1.2 要点:

1.worker 数和服务器的 cpu 数相等是最为适宜的、

2.连接数 worker_connection 发送请求,占用了 woker 的几个连接数?

答案: 2 或者 4 个(需要访问数据库等时四个,Nginx直接能处理2个)

3.nginx 有一 个 master ,有四个 woker ,每个 woker 支持最大的连接数 1024 ,支持的

最大并发数是多少?

普通的静态访问最大并发数是: worker_connections * worker_processes /2。

而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *worker_processes/4 。

# 1.3Nginx常用命令

进入 nginx 目录中
cd /usr/local/ng inx/sbin
1 、查看 nginx 版本号
./nginx v
2 、启动 nginx
./nginx
3 、停止 nginx
./nginx s stop
4 、重新加载 nginx
./nginx s reload
1
2
3
4
5
6
7
8
9
10

配置文件内容

cd /usr/local/nginx/conf/nginx.conf
配置文件中的内容 包含三部分内容
1 全局块:配置服务器整体运行的配置指令
比如 worker_processes 1; 处理并发数的配置
2 events 块 :影响 Nginx 服务器与用户的网络连接
比如 worker_connections 1024; 支持的最大连接数为 1024
3 http 块
还包含两部分:
http 全局块
server 块
1
2
3
4
5
6
7
8
9
10

# 2.正向代理

在客户端配置代理服务器对指定网站进行访问。

国内访问外网,需要通过正向代理服务器,到达指定网站,使得用户对于互联网不可见。

在这里插入图片描述

# 3.反向代理

暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。使得服务器地址对于用户来说不可见

在这里插入图片描述

对地址进行反向代理

1 实现效果
打开浏览器,在浏览器地址栏输入地址 ip(不是8080端口) ,跳转到 liunx 系统 tomcat 主页
面中(8080端口)
2 准备工作
2.1 在 liunx 系统安装 tomcat 使用默认端口 8080
2.2对外开放访问的端口
firewall cmd add port=80 80 /tcp permanent
firewall cmd reload
查看已经开放的端口号
firewall cmd list all
3 在 windows 系统中通过浏览器访问 tomcat 服务器
4.location中进行配置
添加:proxy pass http:ip:8080
1
2
3
4
5
6
7
8
9
10
11
12
13

对端口进行反向代理

1 、实现效果
使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中
访问 http:// ip :8080/a/ 直接跳转到 127.0.0.1:808
访问 http:// ip :8080/b/ 直接跳转到 127.0.0.1:809
2 、准备工作
2.1 准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口
2.2 创建文件夹和测试页面
3 、具体配置
找到 nginx 配置文件,进行反向代理配置
location ~ /a/{proxy pass http:ip:808}
location ~ /a/{proxy pass http:ip:809}
1
2
3
4
5
6
7
8
9
10
11

# 4.负载均衡

服务器的数量数量很多,可以将众多请求分发到各个服务器上进行处理。

在这里插入图片描述

1 、实现效果
浏览器地址栏输入地址 ,
负载均衡效果,平均分配在 8080 和 8081 端口
2 、两台 tomcat 服务器,端口号分别为8080,8081
3 、在 nginx 的配置文件中进行负载均衡的配置
upstream serverst{
server ip:8080
server ip:8081
}
server模块中
location /
{
proxy_pass http://serverst;
}
4 、 nginx 分配服务器策略
第一种 轮询(默认)
每个请求按请求时间顺序逐一分配到不同的后端服务器,能自动剔除。
第二种 weight
weigh t 代表权重默认为 1, 权重越高被分配的客户端越多
第三种 ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
第四种 fair (第三方
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 5.动静分离

网络中的静态资源和动态资源在不同服务器上时,分别进行提取。

在这里插入图片描述

通过 location 指定不同的后缀名实现不同的请求转发。

,响应时间短的优先分配。

## 5.动静分离

网络中的静态资源和动态资源在不同服务器上时,分别进行提取。
[外链图片转存中...(img-inp4LFCB-1610625445672)]

通过 location 指定不同的后缀名实现不同的请求转发。
1
2
3
4
5
6
编辑 (opens new window)
#JAVA#订阅专栏#查看详情
上次更新: 2026/08/11, 13:36:18
C/C++编译与链接 程序员的自我修养:链接 装载和库
JAVA网络编程

← C/C++编译与链接 程序员的自我修养:链接 装载和库 JAVA网络编程→

最近更新
01
Spring IOC
03-31
02
Git修改分支名
08-11
03
CSS给table的tbody添加滚动条
06-29
更多文章>
Theme by Vdoing | Copyright © 2019-2026 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式