Nginx 从入门到实践(1)

Nginx 从入门到实践


Nginx

  • Nginx 从入门到实践
    • Nginx介绍
    • Nginx常用功能
      • 1、Http代理,反向代理
      • 2、负载均衡
      • 3、动静分离
      • 4、Nginx配置文件结构
    • 简述Nginx和Apache的差异
    • 编译安装nginx服务
      • 在线安装nginx
      • nginx 状态统计
      • nginx 访问控制(用户校验、客户端授权)
        • 用户校验
        • 基于客户端访问控制

Nginx:1.20.1

CentOS 版本: 7.6

Nginx介绍

传统的 Web 服务器,每个客户端连接作为一个单独的进程或线程处理,需在切换任务时将 CPU 切换到新的任务并创建一个新的运行时上下文,消耗额外的内存和 CPU 时间,当并发请求增加时,服务器响应变慢,从而对性能产生负面影响。

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

Nginx常用功能

1、Http代理,反向代理

作为web服务器最常用的功能之一,尤其是反向代理。

img

2、负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。

img

Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。

img

3、动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。

动静分离

4、Nginx配置文件结构

nginx 文件结构

...              #全局块events {         #events块...
}http      #http块
{...   #http全局块server        #server块{ ...       #server全局块location [PATTERN]   #location块{...}location [PATTERN] {...}}server{...}...     #http全局块
}

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
5、location块:配置请求的路由,以及各种页面的处理情况。

几个常见配置项:

1.$remote_addr$http_x_forwarded_for 用以记录客户端的ip地址;
2.$remote_user :用来记录客户端用户名称;
3.$time_local : 用来记录访问时间与时区;
4.$request : 用来记录请求的url与http协议;
5.$status : 用来记录请求状态;成功是200;
6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;
7.$http_referer :用来记录从那个页面链接访问过来的;
8.$http_user_agent :记录客户端浏览器的相关信息;

简述Nginx和Apache的差异

(1)Nginx是一个基于事件的Web服务器,Apache是一个基于流程的服务器
(2)Nginx避免子进程的概念,Apache是基于子进程的;
(3)Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般
(4)Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件
(5)Nginx支持热部署,Apache不支持热部署
(6)Nginx对于静态文件处理具有更高效率,Apache相对一般:
(7)Nginx在反向代理场景具有明显优势,Apache相对一般
(8)Nginx可以做负载均衡,Apache不可以

编译安装nginx服务

在线安装nginx

yum部署Nginx

#安装epel-release扩展源
yum -y install epel-release 

在这里插入图片描述
然后

yum -y install nginx

来安装 Nginx,然后我们在命令行中 nginx -v 就可以看到具体的 Nginx 版本信息,也就安装完毕了。
在这里插入图片描述
注:使用yum安装的nginx配置文件位置在:/etc/nginx.conf。
默认根目录在:/usr/share/nginx/html。
默认日志文件在:/var/log/nginx/路径下。

nginx 状态统计

Nginx 提供了 ngx_http_stub_status_module,ngx_http_reqstat_module模块,这个模块提供了基本的监控功能。

监控的主要指标
我们需要对以下主要的指标进行监控:

1、基本活跃指标
Accepts(接受)、Handled(已处理)、Requests(请求数)是一直在增加的计数器。Active(活跃)
在这里插入图片描述

vim /etc/nginx/nginx.conf
server {listen 80;server_name localhost;location /status {stub_status     on;access_log      on;}
}

在这里插入图片描述

nginx 访问控制(用户校验、客户端授权)

以保护状态统计页面为例,配置目录保护

用户校验

(1)使用http服务的命令htpasswd进行用户和密码文件的创建

htpasswd -c /usr/share/nginx/html/htpasswd.nginx namida

在这里插入图片描述
修改属主交给ngxin管理,并给予400权限

chown nginx /usr/share/nginx/html/htpasswd.nginx
chmod 400 /usr/share/nginx/html/htpasswd.nginx```(2)在location块中添加如下两行:```bash
auth_basic "Welcome to nginx_status.";
auth_basic_user_file 
vim /etc/nginx/nginx.conf
location /status{stub_status on;access_log ogg;auth_basic "Welcome to nginx_status.";auth_basic_user_file /usr/share/nginx/html/htpasswd.nginx;
}

(3)重启nginx并再次访问统计页面

nginx -s reload

在这里插入图片描述

基于客户端访问控制

deny是拒绝某一个IP地址、某一个网段客户机访问
allow允许某一个IP地址、某一个网段客户机访问
规则匹配顺序,从上往下,匹配即停止。
需求:添加一条规则拒绝192.168.99.71IP的主机访问
#基于ip地址的身份验证
在location / 中添加

deny 192.168.99.71;
allow all;

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021 年全国职业院校技能大赛高职组“信息安全管理与评估”赛项 A 卷 第一阶段任务书

2021 年全国职业院校技能大赛高职组“信息安全管理与评估”赛项 A 卷 信息安全管理与评估 网络系统管理 网络搭建与应用 云计算 软件测试 移动应用开发 任务书,赛题,解析等资料,知识点培训服务 添加博主wx:liuliu5488233 一、赛项…

释放人工智能潜力,Polkadot 再掀区块链技术革命

来源:https://polkadot.network/blog/unleashing-the-potential-of-ai-with-polkadot/ 编译:OneBlock 区块链技术开辟了一个充满可能性的世界,这一点在新兴崛起的人工智能(AI)领域最为明显。 Polkadot 生态处于这场…

【蓝桥2025备赛】容斥原理

容斥原理 背景:两个集合相交 高中的韦恩图,我们知道两个集合相交时我们可以通过简单的计算来认识相关的性质 集合相交的区域是 A ∩ B A\cap B A∩B ,集合的并集是 A ∪ B A\cup B A∪B ,那怎么用集合表示 A ∪ B A\cup B A∪B 我们可以看作是A集合…

超潜力 JAM 链何以超越中继链,引领 Polkadot 2.0 新航向?

2024 年 4 月 18 日,Polkadot 创始人 Gavin Wood 在迪拜 Token 2049 活动上宣布了一项波卡生态的重大进展—— JAM 灰皮书发布!JAM 协议的诞生与发展开辟了波卡生态的另一种发展路径,它将替代当前中继链的技术角色,以模块化、简约…

某会员商店App的api接口分析

1、目的 探索学习app接口的加解密机制,并通过api模拟调用的方式,发起业务请求。仅供学习。 2、工具准备 样本App版本:v5.0.80,v5.0.90 设备:Oppo R9s(Android7.1.1) MacOS Big Sur&#xff…

SpringCloud 之 服务提供者

前提 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.com学习Rest实例之提供者 提供者模块展示 1、导入依赖 <!-- 实体类 Web--><dependency><groupId>com.jyl</groupId><…

AvalonDock实现可停靠式布局

链接&#xff1a; 源码地址 优势&#xff1a; 1. 可创建类似VisualStudio风格的可吸附式UI界面&#xff1b; 2. 界面可切换不同的颜色风格。

《2023网信自主创新调研报告》正式发布,云起无垠连年参编

近日&#xff0c;备受瞩目的《2023网信自主创新调研报告》&#xff08;以下简称《报告》&#xff09;正式对外发布。在这一重要报告的编写过程中&#xff0c;云起无垠公司作为参编单位&#xff0c;发挥了重要作用。公司凭借在软件测试工具、漏洞管理和软件供应链安全等领域的深…

智谱AI大模型-系列_1

关键概念GLM GLM 全名 General Language Model &#xff0c;是一款基于自回归填空的预训练语言模型。ChatGLM 系列模型&#xff0c;支持相对复杂的自然语言指令&#xff0c;并且能够解决困难的推理类问题。该模型配备了易于使用的 API 接口&#xff0c;允许开发者轻松将其融入…

PHP项目搭建与启动

1、拉取项目 2、安装phpstudy 下载地址&#xff1a; Windows版phpstudy下载 - 小皮面板(phpstudy) (xp.cn) 软件安装&#xff1a; Apache2.4.39、Nginx1.15.11、MySQL8.0.12、 composer2.5.8 添加伪静态 将下面代码写入到伪静态配置文本域框内&#xff1a; location ~* (ru…

Idea:阿里巴巴Java编码插件

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、Alibaba Java Coding Guidelines插件介绍 二、使用步骤 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、Alibaba Java Coding …

走向大规模应用之前,DePIN 如何突破技术、数据与市场之网

近期&#xff0c;随着分布式物理基础设施网络&#xff08;DePIN&#xff09;的快速演变&#xff0c;一个旨在利用区块链技术彻底改造传统基础设施模型的新兴生态系统正在逐渐浮现。2024 年 4 月&#xff0c;以 peaq 为代表的 DePIN 项目成功筹集了 1500 万美元用于生态系统的扩…