当前位置: 首页 > news >正文

Nginx基础入门

一、Nginx的优势

nginx是一个高性能的HTTP和反向代理服务器,也是一个SMTP(邮局)服务器。

Nginx的web优势:IO多路复用,时分多路复用,频分多路复用

                              高并发,IO多路复用,epoll,异步,非阻塞

IO多路复用理论方法

1.第一种方法:最传统的多线程并发模型(没进来一个新的I/O六会分配一个新的进程管理)

2.第二种方法:I/O多路复用(耽搁县城,通过记录跟踪每个I/O六的状态,来同时管理多个I/O流),发明他的原因是尽量多个提高服务器的吞吐能力,在同一个线程里面,通过拨开关的方式,来同时传输多个I/O流

IO多路复用技术类型

select

poll

epoll:特点:异步,非阻塞

二、HTTP协议详解

三、Nginx部署Yum

1.官网链接

http://www.nginx.org

2.nginx版本类型

  • Mainline version:主线版,即开发版
  • Stable version:最新稳定版,生产环境上建议使用的版本
  • Legacy versions:遗留的老版本的稳定版

3.配置yum源

下载压缩包

安装nginx文档

4.装环境问题

getenforce

systemctl  status   firewalld

yum  -y  install  nginx

systemctl  start nginx

systemctl  enable  nginx

nginx  -V

四、Nginx配置文件

rpm  -ql  nginx  查看所有文件

/etc/logrotate.d/nginx日志轮转
/etc/nginx
/etc/nginx/conf.d子配置文件
/etc/nginx/conf.d/default.conf默认网站配置文件
/etc/nginx/fastcgi_params动态网站模块文件-python,php所需的相关变量
/etc/nginx/mime.types文件关联程序(网站文件类型和相关处理程序)
/etc/nginx/modules模块文件夹,第三方模块
/etc/nginx/nginx.conf主配置文件
/etc/nginx/scgi_params动态网站模块文件-python,php所需的相关变量
/etc/nginx/uwsgi_params动态网站模块文件-python,php所需的相关变量
/usr/lib/systemd/system/nginx-debug.servicengnix调试程序启动脚本
/usr/lib/systemd/system/nginx.service服务脚本
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx主程序
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.24.0
/usr/share/doc/nginx-1.24.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx  缓存
/var/log/nginx日志文件 

五、Nginx编译参数

ngnix   -V

nginx version: nginx/1.24.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled

configure arguments:配置参数 configure  --help 查询帮助
--prefix=/etc/nginx安装路径
--sbin-path=/usr/sbin/nginx程序文件
--modules-path=/usr/lib64/nginx/modules模块路径
--conf-path=/etc/nginx/nginx.conf主配置文件
--error-log-path=/var/log/nginx/error.log错误日志
 --http-log-path=/var/log/nginx/access.log访问日志
--pid-path=/var/run/nginx.pid程序id
--lock-path=/var/run/nginx.lock所路径,防止重复启动nginx
--http-client-body-temp-path=/var/cache/nginx/client_temp 缓存
--http-proxy-temp-path=/var/cache/nginx/proxy_temp代理缓存
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_tempphp缓存
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temppython缓存
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
--with-compat启动动态模块兼容
--user=nginx用户
--group=nginx
--with-file-aio使用nginx的aio特性会大大提高性能
--with-threads多线程模块
--with-http_addition_module响应之前或者之后追加文本内容,比如像在站点底部追加一个js广告或者新的css样式
--with-http_auth_request_module认证模块
--with-http_dav_module增加上传PUT,DELETE,MKCOL;创建集合,COPY,MOVE方法默认情况下为关闭
--with-http_flv_modulenginx添加mp4,flv视频支持模块
--with-http_gunzip_module压缩模块
--with-http_gzip_static_module
--with-http_mp4_module多媒体模块
--with-http_random_index_module
--with-http_realip_modulenginx获取真实ip模块
--with-http_secure_link_modulenginx安全下载模块
--with-http_slice_modulenginx中文文档

--with-http_ssl_module安全模块
--with-http_stub_status_module访问状态
--with-http_sub_modulenginx替换网站响应内容
--with-http_v2_module
--with-mail邮件哭护短
--with-mail_ssl_module
--with-stream负载均衡
--with-stream_realip_module
--with-stream_ssl_module
--with-stream_ssl_preread_module
--with-cc-optcpu优化参数
--param
--with-ld-opt

六、Nginx基本配置

1.观察主配置文件

1.1分类

1.CoreModule模块(进程数等)

全局/核心模块:配置影响nginx全局的指令,一般有运行nginx服务器的用户组,nginx进程pid存放位置,日志存放路径,配置文件引入,允许生成worker  process数等

2.EventsModule 事件驱动模块(工作模式)

events块:配置影响nginx服务期货与用户的网络连接,有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否需同时接受多个网络连接,开启多个网络连接序列化等

nginx优化可以改变worker_process为cpu数量,和worker_connections最大连接数

3.HttpCoreModule   http内核模块(文档程序类型,配置文件)

default_type  application/octet-stream;         字节流处理方式

http模块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置,如文件引入,mime-type定义,日子自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等

4.server块:配置虚拟主机的相关参数,一个http中可以有多个server

5.location:配置请求的路由,以及各种页面的处理情况

1.2vim  /etc/nginx/nginx.conf

2.观察默认虚拟主机配置文件

vim  /etc/nginx/conf.d/default.conf

server {             虚拟主机
    listen       80;                监听端口
    server_name  localhost;                购买的域名(服务器的名字)

    #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;
    #}
}
 

3.启动一个新的虚拟主机

3.1vim  /etc/nginx/conf.d/xuleilinux.conf   在nginx上启动一个独立的网站

server {             
    listen       80;                
    server_name  xuleilinux.com;                

    location / {                
        root   /xuleilinux;
        index  index.html;   
    }

}

mkdir  /xuleiLinux

echo  meinanzi > /xuleilinux/index.html

3.2.重启服务

systemctl   restart   nginx

3.3.域名解析和访问

vim  /etc/hosts

192.168.64.139  xuleilinux.com

elink xuleilinux.com    出现meinanzi成功  按q退出

七、Nginx日志Log

1.日志配置

1.1日志模块

官方文档

http://nginx.org/en

日志模块的名称:ngx_http_log_module

1.2相关指令

log_format日志格式
access_log
error_log
open_log_file_cache

1.3日志的格式和命令----log_format

1.3.1简介

Nginx又非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志,日志格式通过log_format命令定义

1.3.2语法

1.3.3默认值

1.3.4环境

Context:http context

1.3.5定义设置位置

vim  /etc/nginx/nginx.conf

日志部分配置

日志格式允许包含的变量

$remote_addr远程地址,记录客户端ip地址
$remote_user远程用户,记录客户端用户名称
[$time_local]本地时间,服务器自身时间
$request请求,记录请求的url和http协议
$status状态,请求状态
$body_bytes_sent发送给客户端的字节数,不包括响应头的大小
$http_referer记录那个页面链接访问过来的(超链接)
$http_user_agent记录客户端浏览器相关信息
$http_x_forwarded_for代理ip
old

1.4访问日志和错误日志

access_log

error_log

个性化404

1.修改主配置文件

server {
        listen 80;
        server_name xuleilinux.com;
location / {
        root /xuleilinux;
        index index.html;
}

        error_page 404 /404.html;

        location  = /404.html {
        root /xuleilinux;
}
}

重启nginx   systemctl  restart nginx

2.创建错误反馈页面

vim  /xuleilinux/404.html

3.访问

访问不存在的页面

4.查看404日志

1.5日志缓存

大量访问到来时,对于每一条日志记录,都将是先打开文件,在写入日志,然后关闭占用系统的io与业务无关,可以使用open_log_file_cache来设

2.日志轮转/切割

前言

Nginx安装,回默认启动日志轮转

rpm  -ql  nginx  | grep  log

/etc/logrotate.d/nginx

/var/log/nginx

3.日志分析

八、Nginx WEB模块

1.连接状态

stub_status_module

1.1.目的:展示用户和nginx链接数量信息

1.2.查询模块是否安装

nginx  -V  2>&1 |  grep stub_status

1.3.启动状态模块

1.3.1访问默认站点的状态模块(注意:错误验证)

http://192.168.64.139/nginx_status    未启用(404)

1.3.2配置状态模块

vim  /etc/nginx/conf.d/default.conf

server{

        location /nginx_status{

                stub_status;

                allow  all;

        }

}                                                    启用改模块

1.3.3重启服务再次访问

systemctl restart nginx       观察连接数和请求数

2.随机主页

3.替换模块

4.文件读取

5.文件压缩

6.页面缓存

7.防盗链

九、Nginx访问限制

十、访问控制

相关文章:

Nginx基础入门

一、Nginx的优势 nginx是一个高性能的HTTP和反向代理服务器,也是一个SMTP(邮局)服务器。 Nginx的web优势:IO多路复用,时分多路复用,频分多路复用 高并发,IO多路复用,epoll&#xf…...

分布式和微服务

分布式和微服务是两个不同的概念。 分布式系统是说多个独立的计算机或服务器组成的系统,这些计算机通过网络进行通信和协作,共同完成一个任务或提供一个服务。 分布式系统的目标是通过协作实现高性能、高可用性和高扩展性。 微服务是一种架构风格&…...

【无标题】学习Markdown

https://shadows.brumm.af 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些…...

由于 vscode 版本更新为 1.86.1引起的相关问题。

通过vscode ssh来远程连接linux服务器的代码,由于vscode 1.86.1的更新,在连接服务器时就开始报 两个错误了: Missing GLIBCXX > 3.4.25! Missing GLIBC > 2.28! lwd192.168.66.148s password: 075b6e8e3a87: runningMissing GLIBCXX &g…...

四、矩阵的分类

目录 1、相等矩阵 2、同形矩阵 3、方阵: 4、负矩阵、上三角矩阵、下三角矩阵: 5、对角矩阵:是方阵 ​编辑7、单位矩阵:常常用 E或I 来表示。它是一个方阵 8、零矩阵: 9、对称矩阵:方阵 1、相等矩阵 …...

Windows环境下查看磁盘层级占用空间的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

超级实用的python代码片段汇总和详细解析(16个)

目录 1. 生成随机文本 2. 计算文本文件中的字数 3. 替换文件文件中的字串 4. 多文件名的批量替换 5. 从网站提取数据 6. 批量下载图片 7.批量删除空文件夹 8.Excel表格读写 9.合并Excel表格工作簿 10.数据库SQL查询 11. 系统进程查杀 12.图像尺寸调整和裁剪 13.图…...

npm/nodejs安装、切换源

前言 发现自己电脑上没有npm也没有node很震惊,难道我没写过代码么?不扯了,进入正题哈哈…… 安装 一般没有npm的话会报错: 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称而且报这个错,我们执行…...

【Kotlin】流程控制

1 选择结构 Kotlin 中选择结构主要包含 if -else、when 语句,并且可以返回结果。 1.1 if-else 1.1. 条件选择 fun main() {var score 85if (score > 90) {println("优秀")} else if (score > 80) {println("良好")} else if (score &…...

Devc++ Easyx 实现 瓦片地图编辑数据导入游戏

导出的DLC 直接放入 exe 同文件夹下即可自动读取。 // 程序:DLC 自动读取加载框架示例 // 作者:民用级脑的研发记录 // 邮箱:1309602336qq.com // 编译环境:Devc/VC 2010/Visual Studio 2022,EasyX_20220901/Easyx_202…...

去年面试的运维开发面试题二

VPN有哪些协议,不同协议之间有何区别? 2.内部组网通常使用哪些类型的网段,两个不同网段如何通信? 3.Linux中绝对路径,相对路径的区别 4. Linux如何添加磁盘,扩容系统文件? 5. Linux如何查看进程…...

【Unity编辑器扩展】Unity编辑器主题颜色设置工具

可以用来应用和自定义你的Unity编辑器。14个主题可供选择。轻松创建自己的主题。 主题展示:...

精美的WordPress外贸独立站模板

WordPress外贸独立站主题 简洁实用的WordPress外贸独立站主题,适合时尚服装行业搭建wordpress企业官网使用。 https://www.jianzhanpress.com/?p4999 简洁wordpress独立站模板 绿色精美、简洁大气的wordpress外贸独立网站模板 https://www.jianzhanpress.com/?…...

说一下 JVM 运行时数据区 ?

目录 一、程序计数器(Program Counter Register) 二、Java 虚拟机栈(Java Virtual Machine Stacks) 三、本地方法栈(Native Method Stack) 四、Java 堆(Java Heap) 五、方法区&…...

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——02.数据格式整理(1)

内容如下: 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的…...

Python 内存管理和优化之循环引用

更多Python学习内容:ipengtao.com Python 是一种高级动态编程语言,其内存管理由解释器自动完成。在大多数情况下,Python 的内存管理是透明的,开发者不需要过多地关注。然而,在处理大型数据结构或长时间运行的应用程序时…...

「Kafka」监控、集成篇

Kafka-Eagle 监控 Kafka-Eagle 框架可以监控 Kafka 集群的整体运行情况,在生产环境中经常使用。 MySQL环境准备 Kafka-Eagle 的安装依赖于 MySQL,MySQL 主要用来存储可视化展示的数据。 安装步骤参考:P61 尚硅谷 kafka监控_MySQL环境准备 …...

Linux之用户和用户组用户账号系统文件

一、简介 1.用户的定义 在linux系统中用户(User)需要用用户账号来访问系统,服务和信息,系统中的每个进程(运行的程序)都是使用一个特定的用户运行。每个文件都属于一个特定的用户所有。对文件和目录的访…...

ESP8266 (5),驱动屏幕

代码 第一步设置驱动库TFT_eSPI的默认配置文件 1,设置适配的屏幕 #define ST7789_DRIVER 2,设置屏幕大小 #define TFT_WIDTH 170 #define TFT_HEIGHT 320 3,设置屏幕驱动板端口和ESP8266对应的端口 // For NodeMCU - use pin numbers in the…...

ChatGPT-01 用ChatGPT指令,自学任何领域的系统知识

1. 指令位置 Github仓库:Mr Ranedeer AI Tutor 但是需要开通chatgtp plus版本,并且打开代码解释器 2 使用 学习内容 开始学习 GPT甚至可以给你思考题,给出的答案还能进行评价 配置 通过配置表修改 深度 学习风格 沟通风格 语气风格 …...

android studio模拟器不能打开

Andriod:The selected AVD is currently running in the Emulator. Please exit the emulator instance… 1.点击 2.删除下面文件 3.重新打开即可 参考...

设计模式学习笔记 - 面向对象 - 5.接口和抽象类的区别

简述 在面向对象编程中,抽象类和接口是常被用到的语法概念,是面向对象四大特性,以及很多设计模式、设计思想、设计原则实现的基础。它们之间的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存…...

PolarDN MISC做题笔记

cat flag 使用01打开flag.png,发现图片尾部有padding的数据。D0 CF 11 E0 A1 B1 1A E1为office2007以前版本的文件头。将其另存为flag.doc,打开发现提示需要密码。(可以注意到:D0CF11E0非常类似DOCFILE) 使用john的office2john.py 提取hash …...

Web安全之浅见

备注:这是我在2017年在自己的网站上写的文章,今天迁移过来。 昨天去参加了公司组织的一个关于网络安全的培训,了解了很多关于网络安全方面的知识,也才意识到网络安全是一项极其重要的领域。 本篇文章主要聊聊Web安全。不过我对于网…...

企业安全建设工具推荐

全自动化挖洞,助力企业安全建设,一键实现域名扫描、IP 发现、端口扫描、服务识别、网站识别、漏洞探测、分析发现、合规检查。 使用方式: 录入目标企业名称即可开始使用 技术细节: 第一步:通过企业主体关联企业备案…...

力扣(leetcode)第455题分发饼干(Python)

455.分发饼干 题目链接:455.分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i…...

隐私也要付费?Meta公司为收集用户数据再出“奇招”

Cybernews网站消息,有相关人士表示,如果欧洲数据保护委员会(EDPB)不明确指出Meta公司的“付费或同意”的模式违反了欧盟的隐私法规,那么这一模式很可能会被大规模复制,危及数百万欧洲公民的自由选择权。 自…...

Android14 InputManager-InputReader的处理

IMS启动时会调用InputReader.start()方法 InputReader.cpp status_t InputReader::start() {if (mThread) {return ALREADY_EXISTS;}mThread std::make_unique<InputThread>("InputReader", [this]() { loopOnce(); }, [this]() { mEventHub->wake(); });…...

web前端安全性——JSONP劫持

1、JSONP概念 JSONP(JSON with Padding)是JSON的一种“使用模式”&#xff0c;可用于解决主流浏览器的跨域数据访问的问题。由于同源策略&#xff0c;协议IP端口有任意不同都会导致请求跨域&#xff0c;而HTML的script元素是一个例外。利用script元素的这个开放策略&#xff0…...

从零开始学HCIA之广域网技术03

1、LCP中包含的报文类型 &#xff08;1&#xff09;Configure-Request&#xff08;配置请求&#xff09;&#xff0c;链路层协商过程中发送的第一个报文&#xff0c;该报文表明点对点双方开始进行链路层参数的协商。 &#xff08;2&#xff09; Configure-Ack&#xff08;配置…...