Nginx最全详解(万字图文总结)(nginxs)
suiw9 2025-03-25 17:19 3 浏览 0 评论
大家好,我是mikechen。
Nginx是非常重要的负载均衡中间件,被广泛应用于大型网站架构,下面我就全面来详解Nginx@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
Nginx
Nginx是一款轻量级的高性能的Web服务器和反向代理服务器,是由俄罗斯的程序设计师Igor Sysoev所开发。
Nginx 处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。
Nginx特点
由于以下这几点,所以使用Nginx非常火,在互联网项目中广泛应用。
- 相较于 Apache具有占有内存少、稳定性高、并发能力强等优势;
- Nginx 使用基于事件驱动架构,使得其可以支持数以百万级别的 TCP 连接;
- 高度的模块化、扩展性好、和自由软件许可证、使得第三方模块层出不穷;
- Nginx 是一个跨平台服务器,可以运行在 Linux、Windows、Mac OS 等操作系统上。
Nginx功能应用
1.正向代理
正向代理最大的特点是:客户端非常明确要访问的服务器地址,服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端,正向代理模式屏蔽或者隐藏了真实客户端信息。
例如:在大陆访问www.google.com,我们需要一个代理服务器,我们通过代理服务器去访问谷歌,这个过程就是正向代理。
来看个示意图:
我们可以通过这种方式,访问原来无法访问的资源,比如:Google。
2.反向代理
反向代理,客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器。
来看个示意图:
由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
3.负载均衡
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上。
来个示意图:
将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器,这就是我们说的负载均衡。
4.动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。
来个示意图:
Nginx使用
1.Nginx官网下载
Nginx下载地址:
https://nginx.org/en/download.html
2.下载稳定版
如下图所示:
然后再把Nginx的下载包,上传Linux服务器。
3.Nginx命令
Nginx常用命令:
nginx -s stop 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit 平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reload 因改变了Nginx相关配置,需要重新加载配置而重载。
nginx -s reopen 重新打开日志文件。
nginx -c filename 为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t 不运行,仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
nginx -v 显示 nginx 的版本。
nginx -V 显示 nginx 的版本,编译器版本和配置参数。
4.Nginx目录结构
├── conf # Nginx所有配置文件的目录
│ ├── fastcgi.conf # fastcgi相关参数的配置文件
│ ├── fastcgi.conf.default # fastcgi.conf的原始备份文件
│ ├── fastcgi_params # fastcgi的参数文件
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types # 媒体类型
│ ├── mime.types.default
│ ├── nginx.conf # Nginx主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params # scgi相关参数文件
│ ├── scgi_params.default
│ ├── uwsgi_params # uwsgi相关参数文件
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp # fastcgi临时数据目录
├── html # Nginx默认站点目录
│ ├── 50x.html # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
│ └── index.html # 默认的首页文件
├── logs # Nginx日志目录
│ ├── access.log # 访问日志文件
│ ├── error.log # 错误日志文件
│ └── nginx.pid # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp # 临时目录
├── sbin # Nginx命令目录
│ └── nginx # Nginx的启动命令
├── scgi_temp # 临时目录
└── uwsgi_temp # 临时目录
5.Nginx配置
Nginx配置文件所在位置:nginx/conf/nginx.conf。
Nginx配置结构
main # 全局配置,对全局生效
├── events # 配置影响 nginx 服务器或与用户的网络连接
├── http # 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置
│ ├── upstream # 配置后端服务器具体地址,负载均衡配置不可或缺的部分
│ ├── server # 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块
│ ├── server
│ │ ├── location # server 块可以包含多个 location 块,location 指令用于匹配 uri
│ │ ├── location
│ │ └── ...
│ └── ...
└── ...
Nginx配置含义
- 全局块main:nginx 的全局配置,对全局生效;
- events:配置影响 nginx 服务器或与用户的网络连接;
- http:可以嵌套多个 server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;
- server:配置虚拟主机的相关参数,一个 http 中可以有多个 server;
- location:配置请求的路由,以及各种页面的处理情况;
- upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。
Nginx配置文件
worker_processes 1;# worker进程的数量
events { # 事件区块开始
worker_connections 1024;# 每个worker进程支持的最大连接数
} # 事件区块结束
http { # HTTP区块开始
include mime.types;# Nginx支持的媒体类型库文件
default_type application/octet-stream;# 默认的媒体类型
sendfile on;# 开启高效传输模式
keepalive_timeout 65;# 连接超时
server { # 第一个Server区块开始,表示一个独立的虚拟主机站点
listen 80;# 提供服务的端口,默认80
server_name localhost;# 提供服务的域名主机名
location / { # 第一个location区块开始
root html;# 站点的根目录,相当于Nginx的安装目录
index index.html index.htm;# 默认的首页文件,多个用空格分开
} # 第一个location区块结果
error_page 500502503504 /50x.html;# 出现对应的http状态码时,使用50x.html回应客户
location = /50x.html { # location区块开始,访问50x.html
root html;# 指定对应的站点目录为html
}
}
6.使用示例
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
#server_name localhost;
server_name 192.168.71.167;
location / {
root html;
#添加下面的一句话
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
相关推荐
- nginx的反向代理(Nginx的反向代理和负载均衡)
-
nginxProxy代理1、代理原理反向代理服务的实现:需要有一个负载均衡设备(即反向代理服务器)来分发用户请求,将用户请求分发到后端正真提供服务的服务器上。服务器返回自己的服务到负载均衡设备。负...
- Nginx UI: 更好用更现代化的Nginx 管理面板
-
各位铲屎官大家好,我是喵~...
- 性能测试之tomcat+nginx负载均衡(nginxtcp负载均衡)
-
nginxtomcat配置准备工作:两个tomcat执行命令cp-rapache-tomcat-8.5.56apache-tomcat-8.5.56_2修改被复制的tomcat2下con...
- nginx upstream节点健康检查(nginx tcp 健康检查)
-
1、前提条件编译nginx时增加nginx_upstream_check_module模板git地址:https://github.com/yaoweibin/nginx_upstream_check...
- Nginx 的高并发处理能力(nginx支持高并发原理)
-
为了实现Nginx的高并发处理能力,需要从**硬件资源**、**操作系统**、**Nginx配置**等多个方面进行优化。以下是详细的配置和示例:---...
- Nginx最全详解(万字图文总结)(nginxs)
-
大家好,我是mikechen。Nginx是非常重要的负载均衡中间件,被广泛应用于大型网站架构,下面我就全面来详解Nginx@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题...
- 如何用 Nginx 实现前端灰度发布(nginx 灰度测试规则)
-
前言在前端开发中,灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新。通过灰度发布,我们可以测试新版本的稳定性和性能,同时收集用户反馈。今天,我们将探讨如何使用Ngi...
- nginx配置优化场景-直接套用so happy!
-
前言(叠甲在先)Nginx是一款高性能的Web服务器,广泛应用于互联网领域。...
- Nginx配置前后端服务(nginx前后端分离部署)
-
nginx安装完成后,可以通过命令查看配置文件nginx-t配置文件nginx.conf,是总的配置,有的人会把配置全部配置到这个文件中,如果服务很多,这个文件变得非常庞大,我见过一个配置很大的,在...
- 使用Nginx配置TCP负载均衡(nginx如何配置负载均衡)
-
假设Kubernetes集群已经配置好,我们将基于CentOS为Nginx创建一个虚拟机。...
- Nginx服务器深度指南:安装、配置、优化指令超详解
-
在当今数字化时代,Web服务器是支撑互联网应用的关键基础设施。Nginx作为一款高性能的开源Web服务器,凭借卓越的性能、丰富的功能和出色的稳定性,在Web服务器领域占据了重要地位。无论是大型互联网公...
- Nginx的配置详解(附代码)(nginx基本配置)
-
本篇文章给大家带来的内容是关于Nginx的配置详解(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。常用配置项在工作中,我们与Nginx打交道更多的是通过其配置文件来进行。...
- Nginx配置文件详解(nginx配置文件详解带实例)
-
Nginx配置文件详解Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。...
- 从 0 到 1:构建高可用 Linux 负载均衡集群(基于 Nginx + Keepalived)
-
在高并发业务场景下,单台服务器往往无法支撑大量请求,因此需要使用**负载均衡(LoadBalancing)**技术来提升系统的稳定性和可用性。Nginx+Keepalived是常见的开源负载均...
- 配置Nginx TCP转发(nginx 接口转发)
-
Nginx一般用在HTTP的转发,TCP的转发大都会使用HAProxy。工作中遇到一个需求,用到了Nginx服务作为TCP转发。场景是这样,数据采集设备通过公网将数据推送到后端应用服务,服务部署在业主...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
tinymce 号称富文本编辑器世界第一,大家同意么?
-
- 最近发表
-
- nginx的反向代理(Nginx的反向代理和负载均衡)
- Nginx UI: 更好用更现代化的Nginx 管理面板
- 性能测试之tomcat+nginx负载均衡(nginxtcp负载均衡)
- nginx upstream节点健康检查(nginx tcp 健康检查)
- Nginx 的高并发处理能力(nginx支持高并发原理)
- Nginx最全详解(万字图文总结)(nginxs)
- 如何用 Nginx 实现前端灰度发布(nginx 灰度测试规则)
- nginx配置优化场景-直接套用so happy!
- Nginx配置前后端服务(nginx前后端分离部署)
- 使用Nginx配置TCP负载均衡(nginx如何配置负载均衡)
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)