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状态连接进行回收。

统计当前系统的连接状态

 

 

七、 防盗链

  

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

My sql 安装,环境搭建

以下以MySQL 8.0.36为例。 一、下载软件 1.下载地址官网:https://www.mysql.com 2. 打开官网,点击DOWNLOADS 然后,点击 MySQL Community(GPL) Downloads 3. 点击 MySQL Community Server 4.点击Archives选择合适版本 5.选择后下载第二个…

bWAPP靶场安装

bWAPP安装 下载 git地址:https://github.com/raesene/bWAPP 百度网盘地址:链接:https://pan.baidu.com/s/1Y-LvHxyW7SozGFtHoc9PKA 提取码:4tt8 –来自百度网盘超级会员V5的分享 phpstudy中打开根目录,并将下载的文…

【C++知识点总结全系列 (06)】:STL六大组件详细总结与分析- 配置器、容器、迭代器、适配器、算法和仿函数

STL六大组件目录 前言1、配置器(1)What(2)Why(3)HowA.调用new和delete实现内存分配与销毁B.STL Allocator (4)allocator类A.WhatB.HowC.allocator的算法 2、容器(1)What(2)Which(有哪些容器)(3)序列容器(顺序容器)A.WhichB.array&…

Unity编辑器工具---版本控制与自动化打包工具

Unity - 特殊文件夹【作用与是否会被打包到build中】 Unity编辑器工具—版本控制与自动化打包工具: 面板显示:工具包含一个面板,用于展示软件的不同版本信息。版本信息:面板上显示主版本号、当前版本号和子版本号。版本控制功能…

音视频开发35 FFmpeg 编码- 将YUV 和 pcm合成一个mp4文件

一 程序的目的 /*** *该程序的目的是: * 将 一个pcm文件 和 一个 yuv文件,合成为一个 0804_out.mp4文件 * pcm文件和yuv文件是从哪里来的呢?是从 sound_in_sync_test.mp4 文件中,使用ffmpeg命令 抽取出来的。 * 这样做的目的是为了对比前…

【C语言】文件的顺序读写

©作者:末央& ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨,书写未来之大梦 目录 前言字符输入输出函数 - fgetc和fputc文本行输入输出函数 - fgets和fputs格式化输入输出函数 - fscanf和fprintf 前言 对文件数据的读写可以分为顺序…

【Elasticsearch】一、概述,安装

文章目录 概述全文搜索引擎概述ES(7.x) 安装ES(Docker)测试,是否启动成功 可视化工具配置中文 客户端Postman下载 概述 ES是开源的高扩展的分布式全文搜索引擎,实时的存储、检索数据;本身扩展性…

function-calling初体验

课程地址:https://learn.deeplearning.ai/courses/function-calling-and-data-extraction-with-llms/lesson/1/introduction github notebook地址:https://github.com/kingglory/LLMs-function-calling/tree/main Function-Calling 介绍 函数调用(Funct…

Linux Centos7部署Zookeeper

目录 一、下载zookeeper 二、单机部署 1、创建目录 2、解压 3、修改配置文件名 ​4、创建保存数据的文件夹 ​5、修改配置文件保存数据的地址 ​6、启动服务 7、api创建节点 一、下载zookeeper 地址:Index of /dist/zookeeper/zookeeper-3.5.7 (apache.org…

Python23 使用Tensorflow实现线性回归

TensorFlow 是一个开源的软件库,用于数值计算,特别适用于大规模的机器学习。它由 Google 的研究人员和工程师在 Google Brain 团队内部开发,并在 2015 年首次发布。TensorFlow 的核心是使用数据流图来组织计算,使得它可以轻松地利…

【Python画图-驯化seaborn】一文搞懂seaborn中的箱线图实践技巧

【Python画图-驯化seaborn】一文搞懂seaborn中的箱线图实践技巧 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档关注&a…

05 docker 镜像

目录 1. 镜像 2. 联合文件系统 3. docker镜像加载原理 4. 镜像分层 镜像分层的优势 5. 容器层 1. 镜像 镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好行程一个可交付的运行环境&#xf…

每日一题 7月1日

1 设数组data[m]作为循环队列的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为____ 2 采用滑动窗口机制对两个相邻结点A(发送方)和B(接收方)的通信过程进行流量控制。假定帧的序号长度为3比特,发送窗口与接收窗口的大小均为7,当A发送了…

昇思25天学习打卡营第9天|MindSpore-Vision Transformer图像分类

Vision Transformer图像分类 Vision Transformer(ViT)简介 近些年,随着基于自注意(Self-Attention)结构的模型的发展,特别是Transformer模型的提出,极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩展性,它已经能够训练具有超过100B参数的空前…

传输线在阻抗匹配时串联端接电阻为什么要靠近发送端

传输线在阻抗匹配时串联端接电阻为什么要靠近发送端 在进行阻抗匹配的时候我们可以在电阻源端放置一个串联端接电阻,但是有时候受到空间的限制可能会把电阻摆的稍微远一点,那么这个时候大家可能会有疑问,电阻离发送端远一点或者电阻放置在接…

java+mysql教师管理系统

完整源码地址 教师信息管理系统使用命令行交互的方式及数据库连接实现教师信息管理系统,该系统旨在实现教师信息的管理,并根据需要进行教师信息展示。该软件的功能有如下功能 (1)基本信息管理(教师号、姓名、性别、出生年月、职称、学历、学位、教师类型…

【Git 学习笔记】1.3 Git 的三个阶段

1.3 Git 的三个阶段 由于远程代码库后续存在新的提交,因此实操过程中的结果与书中并不完全一致。根据书中 HEAD 指向的 SHA-1:34acc370b4d6ae53f051255680feaefaf7f7850d,可通过以下命令切换到对应版本,并新建一个 newdemo 分支来…

【STM32 RTC实时时钟如何配置!超详细的解析和超简单的配置,附上寄存器操作】

STM32 里面RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。因为系统对后备寄存器和RTC相关寄存器有写保护,所以如果想要对后备寄存器和RTC进行访问,则需要通过操作…

社交媒体优化的智能顾问:Kompas.ai如何提升品牌社交表现

在社交媒体盛行的数字时代,品牌必须在社交平台上保持活跃和互动,以增强品牌社交互动和提升在线可见性。社交媒体优化不仅能够扩大品牌的影响力,还能够加深与消费者的联系。Kompas.ai,作为一款智能社交媒体顾问工具,能够…

【前端项目笔记】7 商品管理

商品管理 效果展示: 在功能开发之前,创建商品列表的子分支 git branch 查看所有分支 git checkout -b goods_list 创建并切换到新分支goods_list git push -u origin goods_list 将新分支goods_list推送到云端仓库origin并命名为goods_list保存 通过…