nginx的vim nginx.conf配置文件内容详解及实验,nginx的优化和防盗链

一、nginx网络服务器:

1. nginx是开源的,是一款高性能,轻量级的web服务软件;稳定性高,而且版本迭代比较快;修复bug速度比较快,安全性高;消耗资源低,http的请求并发连接,单台服务器可以支持30000-50000个并发请求(系统资源全部分配给nginx);单个节点的nginx一般支持20000个并发请求
2.nginx的功能:

静态文件服务:静态页面,可以直接提供静态文件服务,html css jsp ,处理静态页面的响应速度快,效率很好

代理:正向代理,反向代理,可以实现负载均衡,高可用和故障转移。

动态处理:nginx不能直接处理动态请求,但是可以通过中间件(例如tomcat)把动态请求转发给后端服务器

支持加密的http及https

可以实现重定向

虚拟主机:一个nginx可以配置多个域名和站点。

nginx自带缓存

性能可扩张:处理能力可以随时调整

3.nginx的应用场景:

静态页面;转发动态请求;反向代理,负载均衡;缓存服务

二、nginx的安装:

1.配置安装包:nginx-1.22.0.tar.gz

2.先关闭防火墙和安全机制:

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

3.然后安装依赖环境;

yum -y install gcc pcre-devel openssl-devel zlib-devel openssl  openssl-devel

4.创建程序用户:useradd -M -s /sbin/nologin nginx

5.安装包解压:tar -xf nginx-1.22.0.tar.gz

6.给解压包权限:chown nginx.nginx  nginx-1.22.0

7.进入cd  nginx-1.22.0目录

8.开始配置:

./configure --prefix=/usr/local/nginx \ #指定安装目录

--user=nginx \ #指定运行用户

--group=nginx \ #指定运行组

--with-http_ssl_module \ #开启对http的ssl加密支持

--with-http_v2_module \ #支持http2.0协议

--with-http_realip_module \ #允许nginx获取客户端的真实ip

--with-http_stub_status_module \ #启动了stud_status模块,可以获取nginx的访问和状态信息

--with-http_gzip_static_module \ #支持压缩文件内容 图片

--with-pcre \ #相当于动态库

--with-stream \ #开启tcp/udp的代理模块支持,也就是四层转发

--with-stream_ssl_module \ #支持四层转发的ssl加密

--with-stream_realip_module #nginx可以从四层转发的头部信息中获取客户端的真实ip

9.编译安装make  -j  4   &&   make  install

10.进入软件目录:cd  /usr/local

11.修改nginx权限:chown  nginx.nginx  nginx

12.ln  -s /usr/local/nginx/sbin/nginx  /usr/sbin

13.修改配置文件: vim /lib/systemd/system/nginx.service

[Unit]

Description=nginx - high performance web server

Documentation=http://nginx.org/en/docs/

After=network-online.target remote-fs.target nss-lookup.target

Wants=network-online.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/run/nginx.pid

#注意文件位置,如果不对 启动不了

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#注意启动文件位置

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s TERM $MAINPID

[Install]

WantedBy=multi-user.target

14.进入nginx目录下:cd  /usr/local/nginx

conf:保存nginx的所有配置文件,其中nginx.conf是nginx的主配置文件

html:保存nginx的web文件,.html结尾的文件,图片

50x.html:是nginx默认的报错提示页面

logs:保存日志的目录,路径可以改

access.log:记录的是访问日志记录

error.log:记录报错日志403 404 500

sbin:放的是nginx的二进制启动脚本

15.在nginx目录下创建run目录:mkdir   run

     给run权限:chown  nginx.nginx  run

16.进入conf目录 :cd  conf

17.修改配置文件:vim    nginx.conf

     pid /usr/local/nginx/run/nginx.pid    #找到 pid开头的行进行修改  

18.改配置文件,一定要重启服务:systemctl daemon-reload

                              重新加载配置:systemctl start nginx.service

19.检测nginx配置文件:nginx  -t

20.查看版本:nginx  -v

三、nginx命令:
nginx -t:检测nginx配置文件以及配置文件语法是否正确

nginx -v:只查看版本

nginx -V:查看版本又查看nginx支持的配置模块

nginx -s:给nginx主程序发送信号,不能开启nginx服务

nginx -s信号类型:stop(关闭)、restart、reload(重新加载nginx,如果更改了配置文件,nginx-s reload无需重启服务)

四、vim  nginx.conf配置文件内容详解:

1.全局模块:worker_processes  1;:指定工作进程数,设置成服务器内核数的2倍(一般不超过8个,超过8个会降低性能);修改进程数在/etc/security/limtes.conf最后一行添加(* soft nproc 65535 能打开的进程最大数的软限制是65535;*hard  nproce 65535能打开的进程最大数是65535;* soft nofile 65535 进程打开文件的最大值也是65535;* hard nofile 65535进程最大数的硬限制65535)修改之后重启后才生效。

2.events模块:决定了nginx能够处理的连接数,连接数和worker_processes的数值相乘,默认是1024个(处理进程)

3.stream:四层代理模块

4.http模块:转发和处理http请求,主要处理静态页面,设置正向代理和反向代理,缓存,定义日志格式,重定向配置。(http里可以包含多个server模块,一个server模块就是一个主机)

include:文件扩展名于文件类型的映射表,nginx能够打开的文件和支持的文件类型。

default_type:默认支持的文件类型(.html .htm)

log_format:日志格式,记录了access.log,访问日志的格式,error.log也是一样的格式

access_log:默认的访问日志的存放路径

sendfile   on:支持文件发送和下载

tcp-nopush  on:默认就是异步非阻塞模式功能(每个客户可以同时向服务器发送信息,各不受影响)

keepalive_timesout  65:连接保持的时间,单位为秒

gzip  on:开启页面压缩功能

5.server模块(在events模块,是开启web服务的模块;http里可以包含多个server模块,一个servermo'kuai):listen 80:nginx的默认监听端口为80;server_name :配置站点的域名;charset  koi8-r:网页的默认字符集,改为charset utf-8默认支持中文;accesss_log:网页匹配的工作目录的地址和支持的打开页面的文件类型;

location / :(location模块)表示nginx配置文件的家目录,默认就是/

root  html:nginx工作目录的家目录,默认就是/usr/local/nginx/html;alias:也是匹配nginx的工作目录。

在server模块中可以有多个location模块

6.root和alias之间匹配的都是nginx工作目录,其区别:

root的匹配模式相当于拼接(在root的工作目录,访问的就是uri/下的内容,可以写作为location /xy101     root    /opt/test),可以写在server模块也可以写在http里,也可以写在location

alias匹配nginx工作目录的路径是绝对路径,只能写在http模块当中server模块的location模块里面,不能够使用重定向功能。

 练习

 

 五、实验

1.统计nginx的访问状态

 2.基于密码的授权进行访问控制

先安装yum -y install httpd-tools  #httppasswd的工具

 

 

3.基于客户端的访问控制 ,也就是根据ip地址来进行控制

  

 4.基于域名的nginx主机

 vim  /etc/hosts 

  5.基于多个域名的nginx主机

 6.基于ip地址的虚拟主机

同时修改两个server模块的端口号 

 

7.基于端口实现多个虚拟主机

 

 

 8.多个配置文件:

conf.d:不是固定的,可以根据自己喜好起名

 

 六、nginx的优化

1.隐藏版本号 

2.修改用户及用户组

 3.设置页面的缓存时间,主要是针对动态页面及图片缓存

 4.日志分割:apache是自带日志分割的,按天来进行收集日志,但是nginx没有日志分割。

 

 

 

5. 更改进程数设置cpu绑定(重点)

 6.连接超时

 

 7.配置页面压缩

 

8.回收TIME_WAIT:time_wait是tcp连接当中的一种状态,出现在四次挥手之后;处于等待状态,双方不再发送数据。time_wait所占用的系统资源很小,完全可以忽略不记,但是太多了,就有一定的影响,进行连接断开,尽快的把time_wait状态连接进行回收。

统计当前系统的连接状态

 

 

七、 防盗链

  

 

 

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

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

相关文章

探索指针(4)-C语言

目录 1.回调函数 一.回调函数的基本概念 二.示例 三.详细说明 2.qsort使用举例 一.qsort 函数原型 二.参数解释 三.比较函数 3.qsort函数的模拟实现 一.代码示例: 二.分段讲解代码 1.回调函数 一.回调函数的基本概念 回调函数本质上是一种通过函数指…

基于FreeRTOS+STM32CubeMX+LCD1602+MCP23S08(SPI接口)的I/O扩展器Proteus仿真

一、仿真原理图: 二、仿真效果: 三、STM32CubeMX配置: 1)、时钟配置: 2)、SPI配置: 四、部分软件: 1)、main主函数: /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file :…

【7】ExternalCommand

文章目录 ExternalCommandProcessComponent(服务端)输入输出 external_command_demo(客户端)插件ActionCommandProcessor ExternalCommandProcessComponent(服务端) 输入 用户业务模块发送的命令为apollo::external_command::ExternalCommandProcessCo…

I2C bus,adaptor,client 在sysfs 的路径定位

i2c bus 路径 struct bus_type i2c_bus_type {.name "i2c",.match i2c_device_match,.probe i2c_device_probe,.remove i2c_device_remove,.shutdown i2c_device_shutdown, }; EXPORT_SYMBOL_GPL(i2c_bus_type);static int __init i2c_init(void) {int re…

使用ref定义响应式数据变量

Ref 使用 Ref 可以方便地创建和管理Vue组件中的响应式数据。例如,如果你有一个计数器组件,你可以使用 Ref 来创建一个响应式的计数器变量,然后在组件内部或外部修改这个变量的值,而不需要手动触发视图更新。 先声明一个变量&…

Adobe Photoshop 2024 v25.5.1 中文激活版下载以及安装方法教程

软件介绍 Adobe Photoshop 2024 v25.5.1 是Adobe公司的最新版图像处理软件,它提供了强大的图像编辑工具和智能自动化功能,包括图像修复、色彩校正和滤镜效果,以满足专业人士和业余爱好者的需求。这款软件还支持矢量图形设计和实时协作&#…

JavaScript之深入对象,详细讲讲构造函数与常见内置构造函数

前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家详细讲讲构造函数与常见内置构造函数,并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎…

提升效率:快速绘制线框图的技巧

1、什么是线框 线框作为项目开始时的蓝图或示意图,可以帮助我们更清晰地向相关客户呈现相应的程序或网站的框架结构。从更深层次上讲,线框图代表了产品的基本设计布局,承载着界面显示的关键信息,绘制着要开发的应用程序或网站界面…

LeetCode题练习与总结:二叉树的后序遍历--145

一、题目描述 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[3,2,1]示例 2: 输入:root [] 输出:[]示例 3: 输入&#xff1a…

AVR晶体管测试仪开源制作与验证

AVR晶体管测试仪开源制作与验证 📍原项目地址:https://www.mikrocontroller.net/articles/AVR_Transistortester github地址:https://github.com/Mikrocontroller-net/transistortester 🎈EasyEDA项目地址:https://osh…

《数据结构与算法基础 by王卓老师》学习笔记——2.4线性表的顺序表示和实现3

1.线性表的顺序存储表示 2.顺序表示意图 定义变量的时候才会分配空间,光有类型是不分配空间的 3.顺序表的基本操作 增删查三种较难,后面会讲 4.预定义常量和类型 5.算法一:线性表的初始化 6.线性表的几个简单操作 7.算法二:顺序…

快速上手文心一言指令:解锁AI对话新纪元

快速上手文心一言指令 一、引言:文心一言的魅力所在二、准备工作:了解文心一言平台2.1 轻松注册,开启智能对话之旅2.2 深度探索,掌握界面布局奥秘2.2.1 输入框:智慧交流的起点2.2.2 回复区:即时反馈的窗口2…

IT行业入门,如何假期逆袭,实现抢跑

目录 前言 1.IT行业领域分类 2.基础课程预习指南 3.技术学习路线 4.学习资源推荐 结束语 前言 IT(信息技术)行业是一个非常广泛和多样化的领域,它包括了许多不同的专业领域和职业路径。如果要进军IT行业,我们应该要明确自己…

从一次 SQL 查询的全过程了解 DolphinDB 线程模型

1. 前言 DolphinDB 的线程模型较为复杂,写入与查询分布式表都可能需要多个类型的线程。通过了解 SQL 查询的全过程,可以帮助我们了解 DolphinDB 的线程模型,掌握 DolpinDB 的配置,以及优化系统性能的方法。 本教程以一个分布式 …

【鸿蒙学习笔记】基础组件 Button

官方文档:按钮 (Button)添加链接描述 官方文档:button开发指导 目录标题 属性迭代完善不含子组件的按钮包含子组件的按钮ButtonType添加事件跳转超链接提交表单悬浮按钮 属性迭代完善 不含子组件的按钮 Column({ space: 10 }) {Row() {Button(添加子目…

【原理】随机森林模型是怎么训练的

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、随机森林简介二、随机森林训练原理2.1. 随机森林的训练流程2.2. 随机森林训练的核心代码 用过随机森林的朋友都知道,随机森林是集成决策的一个经典代表,它通过训练多棵决策树&#xf…

Zigbee智能家居数据中心:微信小程序实时掌控家居传感器信息

摘要: 本文将介绍如何构建一个基于Zigbee和微信小程序的智能家居网关,实现对家居传感器数据的采集、汇总和展示。用户可通过微信小程序实时查看家中温湿度、光照等环境数据,为智能家居系统提供数据支撑。 关键词: Zigbee&#xf…

java内存管理机制(二)-内存分配

在上一篇文章中,我们花了较大的篇幅去介绍了JVM的运行时数据区,并且重点介绍了栈区的结构及作用,在本文中,我们将主要介绍对象的创建过程及在堆中的分配方式。 对象的创建 在上文我们提过一些问题,你的对象是怎么new…

5.3.3、二维数组案例-考试成绩统计

代码 #include <iostream> using namespace std; #include <string>int main() {//二维数组案例-考试成绩统计//1、创建二维数组int scores[3][3] {{100,100,100},{90,50,100},{60,70,80},};string names[3] { "张三","李四","王五&quo…

基于星火大模型的群聊对话分角色要素提取挑战赛|#AI夏令营#Datawhale#夏令营-Lora微调与prompt构造

赛题连接 https://challenge.xfyun.cn/topic/info?typerole-element-extraction&optionphb Datawhale Al夏令营 零基础入门大模型技术竞赛 数据集预处理 由于赛题官方限定使用了星火大模型&#xff0c;所以只能调用星火大模型的API或者使用零代码微调 首先训练数据很少…