一文带你深入Nginx,由基础到进阶,包你轻松入门Nginx

Nginx从入门到精通(全) 目录前言1.相关概念 前言 本文主要是 反向代理,负载均衡,动静分离以及实例 nginx安装,常用命令,原理和配置文件 配置高可用的集群 优点: 内存少,并发能力强 注重效率,经受高负载的考验 热部署,启动容易运行 1.相关概念 正向代理:依赖代理服务器,即客户端配置代理,访问internet 反向代理:将请求发送到反向服务器,由反向代理服务器转发到不同服务器,暴露的只是访问代理服务器,隐藏了真实的服务器 负载均衡:由于请求量多,并发量多,容易造成服务器崩溃。所以应该增加服务器的数量,将请求分发到各 阅读详情

一、Nginx 基本认识

1、Nginx 是什么?

  Nginx 是一款开源的、轻量级的、高性能的 HTTP 服务器 以及 反向代理服务器。
  特点是 占有内存少、并发能力强。

2、Nginx 用来干什么?

  其可以作为一个 HTTP 服务器 进行网站的访问、发布。
  也可以作为一个 反向代理服务器 实现负载均衡。

二、正向代理、反向代理

1、什么是代理?

  代理本质就相当于一个 中转站,用于处理一个目标到另一个目标。
  即两个目标之间并不存在真正的连接,而是通过某个通道 中转。

如下图所示:
  客户端 想要访问 真实服务器,需要先经过 代理服务器,通过代理服务器 去访问 真实服务器。
  真实服务器响应请求,通过 代理服务器 将请求结果 返回给 客户端。

2、正向代理?

(1)什么是正向代理?
  正向代理实质指的是 客户端代理,即代理客户端,为客户端接收、发送请求,服务端不知道实际发起请求的是哪个客户端。

如下图所示:
  在客户端设置正向代理服务器(IP 地址 + 端口号)。
  多个客户端 可以连接同一个代理服务器,通过代理服务器 去 访问真实的服务器。
  真实服务器 响应然后通过 代理服务器 将数据返回给 指定的 客户端。

  真实服务器并不清楚 其响应的 是哪个 客户端 发送的请求。

(2)正向代理使用场景:
  访问国外网站(Google、YouTube 等),需要翻墙(代理服务器)才可以访问。
  可以做缓存,加速资源的访问。

3、反向代理?

(1)什么是反向代理?
  反向代理实质指的是 服务端代理,即代理服务端,为服务端接收、发送请求,客户端不知道实际处理请求的是哪个服务端。

如下图所示:
  某个客户端,通过代理服务器访问 网络上的资源。
  代理服务器响应,并找到某个 真实的服务器 处理并返回数据。
  代理服务器将 数据返回给 客户端。

  客户端并不清楚 其请求 被哪个 真实服务器 响应。

(2)反向代理使用场景:
  负载均衡,通过反向代理优化网站的负载。
  将代理服务器作为公网访问地址,真实服务器为 内网资源,保证内网的安全。

4、正向代理、反向代理同时应用?

  某个业务场景下,正向代理、反向代理 可以同时应用。
  正向代理,用于代理客户端 去访问服务器(代理多个客户端)。
  反向代理,用于代理服务端 去响应客户端请求(代理多个服务端)。
如下图所示:

  客户端、服务端 通过 正向代理服务器、反向代理服务器 进行数据的交互。

三、负载均衡、动静分离

1、负载均衡

(1)为什么出现负载均衡?
  一个小型的项目,一台服务器可以处理(可以提升机器硬件的能力)。
  对于大型的项目,一台服务器处理起来,效率会很低下,采用 多台服务器 进行处理可以提高处理效率,但是请求如何到达服务器、各个服务器处理请求的数量 是需要解决的问题。
  可以采用 反向代理 去代理多个服务器(解决请求到达服务器问题),并 根据某种规则 指定 服务器处理请求,使各个服务器处理请求的数量尽量均匀,即负载均衡(解决服务器处理请求问题)。

如下图所示:
  客户端发送了 1000 个请求到 反向代理服务器。
  反向代理服务器通过某种负载均衡算法,将请求分发到不同的真实服务器上处理。
  比如真实服务器 A 处理了 320 个请求,B 处理了 350 个请求,C 处理了 330 个请求。

(2)负载量?均衡?什么是负载均衡?
  Nginx 在负载均衡中的角色 就是 反向代理服务器。
  负载量 实质指的是 客户端发送、被 反向代理服务器 接收到的请求数量。
  均衡 实质指的是 按照某种规则,反向代理服务器 将接受的请求 发送给不同的 真实服务器处理(使各个真实服务器处理的请求量尽量均匀)。

  所以负载均衡 实质指的是 反向代理服务器接收请求、并按照某种规则发送到 不同的真实服务器 处理的过程。

(3)负载均衡的方式?
  负载均衡可以分为 硬件负载均衡、软件负载均衡。
  硬件负载均衡 一般造价昂贵,但数据传输更加稳定。比如: F5 负载均衡。
  软件负载均衡 一般采用 某种 负载均衡 算法实现(一种消息队列分发机制)。

2、动静分离

  为了加快网站的解析速度,通常会将 动态页面 与 静态页面内容 放在不同的服务器上处理,从而降低单个服务器的压力,加快解析速度。
  动静分离实质就是将 动态资源 与 静态资源分开,放在不同的服务器上处理。

如下图:
  真实服务器分为 动态资源处理服务器 与 静态资源处理服务器,反向代理根据不同的业务需求,将处理发送到不同的服务器上处理并返回内容。

 

五、Nginx 实现反向代理

1、实现效果?

  使用 nginx 作为反向代理,根据访问路径的不同跳转到不同端口的服务中进行处理。
其中:
  nginx 监听 80 端口(可省略),
访问:
  http://120.26.184.41/blog,跳转到 https://www.cnblogs.com/l-y-h/。
  http://120.26.184.41/baidu,跳转到 https://www.baidu.com/。

2、修改 nginx 配置文件

(1)配置文件简单分析
  /etc/nginx/conf.d/default.conf 配置文件如下:

【配置文件中常用关键字解析:(server 块)】
    listen           用于配置网络监听、监听端口、IP地址等。
        比如: 
            listen port              监听 port 端口的所有的连接。
            listen IP_address        监听 IP_address 所有端口。
            listen IP_address:port   监听 IP_address 的 port 端口。
    
    server_name      用于设置虚拟主机,可以为 域名、IP地址。
    
    location        用于匹配 URL。
        比如:
            location = uri     表示严格匹配 uri,非正则表达式匹配。
            location ~ uri     正则表达式匹配,区分大小写。
            location ~* uri    正则表达式匹配,不区分大小写。
            
【location 块中常用关键字解析:】
    proxy_pass       用于设置被代理服务器的地址
    index            用于设置网站默认首页

【/etc/nginx/conf.d/default.conf 配置文件如下:】

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

(2)修改 nginx.conf 配置文件,用于添加代理映射。

【添加映射关系:(server 块)】
server {
    listen 80;
    server_name localhost;

    location /blog/ {
       proxy_pass https://www.cnblogs.com/l-y-h/;
    }

    location /baidu/ {
       proxy_pass https://www.baidu.com/;
    }
}

【完整 nginx.conf】
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen 80;
        server_name localhost;
    
        location /blog/ {
           proxy_pass https://www.cnblogs.com/l-y-h/;
        }
    
        location /baidu/ {
           proxy_pass https://www.baidu.com/;
        }
    }
    include /etc/nginx/conf.d/*.conf;
}

以上就是小编整理的Nginx基础知识,知识个人的一些见解,有哪里不准确的地方,还请各位大佬多多批评指正。

感觉小编码字还可以的话,请多多点赞评论,关注小编,你们的支持就是小编最大的动力!!!!

 

 

 

 

一文带你了解Nginx基础知识 | 建议收藏 目录 1. 概述 2. 历史背景 3. nginx的优点 4. 主要组成部分 5. 版本规则 6. 版本选择 7. 编译配置 8. 开始编译 9. 配置语法 10. 重载,热部署,日志切割 1. 重载配置文件 2. 热部署 3. 日志切割 11. 静态资源Web服务器 1. 开启gzip 2. 打开目录结构 3. 网速限制 4. 日志 12. 反向代理服务 1. 缓存 13. 监控access日志 14. SSL安全协议 15. 对称加密、非对称加密 16 阅读详情

相关推荐

5步轻松搞定!Nginx如何实现动态封禁IP?一文带你从新手到高手

通过本文的介绍,你应该已经学会了如何使用Nginx + Lua + Redis实现动态封禁IP。这种方法不仅灵活高效,还能有效保护你的服务器免受恶意请求的侵扰。希望这篇教程对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言交流哦!🌟🌟🌟希望这篇文章能帮助你在Nginx的动态封禁IP方面更加得心应手。如果你觉得有用,不妨分享给更多的人吧!🎉🎉🎉。

java专栏 705

Nginx从入门到进阶

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

大帅的博客 915

NXP KW47蓝牙MCU低功耗实测:从8μA睡眠到5年续航的优化实战

在物联网和嵌入式系统开发中,低功耗设计是决定电池供电设备续航能力的关键技术。其核心原理在于通过事件驱动、状态机管理和精细的电源域控制,使设备在空闲时进入深度睡眠,仅在需要时快速唤醒工作,从而将平均电流从毫安级降至微安级。这项技术的工程价值在于能够实现纽扣电池供电设备长达数年的使用寿命,广泛应用于智能家居传感器、可穿戴设备、资产追踪和工业监测等领域。以NXP KW47系列无线MCU为例,其集成的Arm Cortex-M33双核与专用射频单元,配合多级睡眠模式和高效DC-DC转换器,为超低功耗蓝牙应用提供了硬件

weixin_30162121的博客 256

docker快速部署nginx+php+mysql

docker部署web环境只需要几分钟(如果网速够快)。 第一步: php部署 1、拉取php-fpm docker pull php:7.1-fpm 2、部署,并启动php docker run --name myphp-fpm -v ~/nginx/www:/www -d php:7.1-fpm 第二步 nginx部署 1、拉取nginx $ docker pull nginx:latest 2‘、部署nginx,并启动nginx docker run --name

625

DoDAF2.0与UAF1.0与UPDM与IBD与Rhapsody与MagicDraw与SysML

参考:fr=ge_alafr=ge_ala。

计算机辅助工程 1417

草莓成熟度与叶片病虫害智能检测数据集应用全解析

本文深入解析草莓成熟度与叶片病虫害智能检测数据集的应用价值,涵盖从绿草莓到红果转色的完整成熟周期及白粉病、炭疽病等7种病害的精准识别。通过实战案例展示如何提升病害识别率至94%,并介绍数据集的科研价值,包括跨品种迁移学习和多模态数据融合技术。

weixin_28366353的博客 274

nginx 基础的安装部署和依赖包

基础的软件包 大家可以去官网下载对应的包如果需要可以留言 我会发给大家的 在这里就不累赘了 都是需要编译安装的依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包.前三个包 在/usr/local 下编辑安装即可 cd /usr/local (此处也可以你自己指定位置 ) tar -zxvf openssl-fips-2.0.16.tar.gz cd openssl-...

weixin_34297300的博客 1200

Spine骨骼动画查看器 - Skeleton Viewer

骨骼动画是现代游戏和动画制作中常用的技术之一。Spine骨骼动画查看器(Skeleton Viewer)是一个官方提供的工具,用于查看和调试Spine骨骼动画。本文将介绍Skeleton Viewer的功能和使用方法,并提供相应的源代码示例。通过Skeleton Viewer,开发者可以直观地查看和调试Spine骨骼动画,包括骨骼结构、动画播放和事件触发等。这有助于提高骨骼动画的质量和效果,并加速开发过程。以上代码演示了如何使用Skeleton Viewer查看和播放Spine骨骼动画。

HsvvDatabase的博客 3457

一文带你深入Nginx,由基础到进阶,包你轻松入门Nginx(1)

【完整 nginx.conf】events {[外链图片转存中…(img-WrxRWx2F-1714543492613)][外链图片转存中…(img-laQinw6m-1714543492614)][外链图片转存中…(img-MhVXqovL-1714543492614)]本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录。

pckzzy119的博客 77

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

WW、forever的博客 186

05GATK流程和找变异

05GATK流程和找变异 GATK 集合了一套功能全面的高通量测序数据基因组分析工具包,算是业界的权威,更新的速度非常快。需要注意的是,不同版本的 GATK 在工具应用上会有些许不同。这里我们使用是最新版本 GATK 4.1.4.1(截止2019年12月31日)。 数据准备 前面我们提到了,走GATK流程需要到官网下载很多数据库文件,比如下面这些: dbsnp_146.hg38.vcf.gz dbsnp_146.hg38.vcf.gz.tbi Mills_and_1000G_gold_standard.

qq_23435961的博客 1660

一文带你轻松加愉快入门Linux

文章目录(一)Linux的概述(二)Linux的安装:1.虚拟机安装:1.1.什么是虚拟机1.2.安装VmWare ????大家好!我是近视的脚踏实地,这篇文章主要是Linux的入门学习      唯有行动  才能解除你所有的不安 (一)Linux的概述 (二)Linux的安装: 1.虚拟机安装: (首先安装Linux操作系统,有两种选择,第一种...

Monster丶ZF的博客 7925

使用Python爬虫抓取政府网站政务信息:公告、通知的自动化抓取与分析

通过结合Requests、BeautifulSoup、Selenium等技术,你能够高效地抓取政府网站的数据,并通过MySQL存储与Pandas分析这些数据。通过自动化手段抓取这些信息,不仅可以提高数据收集的效率,还能够实时获取最新的政务动态,为政策研究、舆情分析等提供宝贵数据。我们将通过Python的Requests、BeautifulSoup、Selenium等工具,结合最新的技术实现一个完整的爬虫系统,帮助你轻松抓取并分析政务信息。通过爬虫,我们可以自动化地从指定网站上抓取公告、新闻、通知等信息。

2201_76125261的博客 1907

一文搞懂Nginx:从入门到实战,新手也能轻松上手

Nginx是一款高性能的HTTP服务器和反向代理工具,具备高并发处理、负载均衡、静态资源服务等核心功能。本文从基础概念到实战应用,系统介绍了Nginx的核心优势、版本选型建议及四大核心功能:静态资源服务器配置、反向代理实现、负载均衡策略(轮询/权重/IP哈希/最少连接)以及HTTPS安全配置。文章还提供了Ubuntu和CentOS系统的安装指南及常用命令,帮助开发者快速掌握这一Web架构核心组件,适用于前端部署、API代理和高并发场景。

m0_46879864的博客 1565

AMD机密计算虚拟机介绍

AMD机密计算虚拟机介绍

木简熙的博客 524

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

一文带你轻松掌握Nginx HTTPS配置精髓!

一文带你轻松掌握Nginx HTTPS配置精髓!

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1477

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Nginx 入门详解:从基础到实战,一文搞懂高性能服务器

Nginx 作为一款高性能的服务器工具,核心优势在于高并发、低消耗、配置简单、功能全面,从静态资源部署到反向代理,从解决跨域到负载均衡,几乎覆盖了后端部署的所有核心需求。对于新手来说,无需一开始就深究复杂的配置,先掌握安装启动、核心命令、四大应用场景和基础配置,通过实际操作熟悉后,再逐步学习高级策略(如缓存、SSL 加密、限流)。Nginx 的配置看似繁琐,但核心逻辑非常清晰,只要多练、多试,就能快速掌握,成为后端部署的 “得力助手”。

2302_80192044的博客 1118

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

零基础入门:Windows安装配置Nginx图文指南

在下载页面选择最新的稳定版本,Windows系统就选"nginx/Windows-x.x.x"这样的包。把下载好的zip文件解压到你想要安装的目录,比如D盘根目录下的nginx文件夹。打开浏览器,在地址栏输入"localhost"或者"127.0.0.1",如果看到欢迎页面,就说明Nginx已经成功运行了。最近在学习搭建自己的网站服务器,发现Nginx是个不错的选择,尤其适合新手入门。它不仅提供了内置的代码编辑器,还能一键部署Nginx服务,省去了很多手动配置的麻烦。这是最简单的网页部署方式。

BlackStone33的博客 832

Nginx系列教程(三)| 一文带你读懂 Nginx 的负载均衡

作者:JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) LAMP 系列导读 01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务 02. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点? 03. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制 04. LAM...

JackTian 2098

Nginx配置详解: 从基础入门到高级实战的全面指南

在 Web 服务架构中,Nginx 以其卓越的高性能、高并发处理能力和灵活的配置特性,成为众多开发者和企业的首选 Web 服务器与反向代理工具。无论是静态资源服务、反向代理转发,还是负载均衡、安全防护,Nginx 都能通过合理的配置轻松实现。然而,Nginx 的配置语法相对复杂,不同模块与指令的组合使用方式多样,这也让不少初学者望而却步。本文我将从 Nginx 配置的基本结构出发,逐步深入到高级配置实践,并结合实际案例,帮你全面掌握 Nginx 配置的核心要点与技巧。

aa_hdkf_vg的博客 5731

一文带你了解nginx

Nginx 作为一款高性能的轻量级服务器工具,凭借着高并发、低资源消耗、配置灵活的特性,成为了后端架构中不可或缺的一环。从基础的静态资源部署,到虚拟主机、反向代理,再到高并发场景的负载均衡,Nginx 几乎覆盖了 Web 服务的所有核心需求,而 “动静分离” 的最佳实践,更是让它与 Tomcat 等动态服务器形成完美搭配,大幅提升服务性能和稳定性。本文从 Nginx 的基础认知、安装配置到核心功能实战,讲解了最实用的企业级用法,所有配置均为基础且核心的内容,上手难度低,只要掌握nginx.conf。

t2786024916的博客 568

还不懂Nginx是什么?一文带你全面了解

互联网的全球化导致了互联网的数据量快速增长,为了应对如今互联网上海量的用户,轻松处理数百万、上千万的连接,Nginx应运而生。如果你还不懂Nginx是什么,想必已经被拍在时代浪潮之下了。今天尽量用相对易懂的语言进行解释,不足之处望大家补充。 Nginx是什么? 首先我们知道,在网站输入网址的时候访问某一个网站,可以得到想要的结果,如果是淘宝呢,淘宝购物每天用户量非常大,达到百万或者千万级怎么办了,这个时候人太多了,访问的时候操作系统的多线程和进程建的切换消耗了大量的CPU资源,严重会导致服务器宕机,失去用户

hanniuniu13的博客 1173

Nginx系列教程(四)| 一文带你读懂 Nginx 的动静分离

作者:JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) LAMP 系列导读 01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务 02. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点? 03. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制 04. LAM...

JackTian 720
上一篇: 最新微服务、MySQL、Nginx加Redis实战,助你成功向阿里P8进军!
下一篇: 史上最全MySQL架构,助你深度掌握MySQL开发管理,赢在大数据时代
Java领域指导者
博客等级 码龄7年 404粉丝 265原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值