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访问限制

十、访问控制

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

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

相关文章

备战蓝桥杯---基础算法刷题1

最近在忙学校官网上的题,就借此记录分享一下有价值的题: 1.注意枚举角度 如果我们就对于不同的k常规的枚举,复杂度直接炸了。 于是我们考虑换一个角度,我们不妨从1开始枚举因子,我们记录下他的倍数的个数sum个&#…

每日五道java面试题之spring篇(二)

目录: 第一题 Spring事务传播机制第二题 Spring事务什么时候会失效?第三题 什么是bean的⾃动装配,有哪些⽅式?第四题 Spring中的Bean创建的⽣命周期有哪些步骤?第五题 Spring中Bean是线程安全的吗? 第一题 Spring事务…

QT中调用python

一.概述 1.Python功能强大,很多Qt或者c/c开发不方便的功能可以由Python编码开发,尤其是一些算法库的应用上,然后Qt调用Python。 2.在Qt调用Python的过程中,必须要安装python环境,并且Qt Creator中编译器与Python的版…

typescript 分析泛型工具类Partial的实现原理理解索引查询类型

Partial实现原理 在 TypeScript 中,Partial 是一个非常有用的工具类型,它能够将一个对象类型的所有属性变为可选。Partial 的实现原理是通过使用映射类型(Mapped Type)和 keyof 关键字来实现的。 下面我们来看一下 Partial 的实现…

LeetCode 热题 100 | 二叉树(终)

目录 1 二叉树小结 1.1 模式一 1.2 模式二 2 236. 二叉树的最近公共祖先 3 124. 二叉树中的最大路径和 菜鸟做题(返校版),语言是 C 1 二叉树小结 菜鸟碎碎念 通过对二叉树的练习,我对 “递归” 有了一些肤浅的理解。…

RabbitMQ开启MQTT协议支持

1)RabbitMQ启用MQTT插件 rootmq:/# rabbitmq-plugins enable rabbitmq_mqtt Enabling plugins on node rabbitmq: rabbitmq_mqtt The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_mqttrabbitmq_web_dispatch Ap…

正交匹配追踪(Orthogonal Matching Pursuit, OMP)的MATLAB实现

压缩感知(Compressed Sensing, CS)是一种利用稀疏信号的先验知识,用远少于奈奎斯特采样定理要求的样本数目恢复整个信号的技术。正交匹配追踪(Orthogonal Matching Pursuit, OMP)是一种常见的贪婪算法(Gree…

P8630 [蓝桥杯 2015 国 B] 密文搜索

P8630 [蓝桥杯 2015 国 B] 密文搜索 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P8630 题目分析 基本上是hash的板子,但实际上对于密码串,只要判断主串中任意连续的八个位置是否存在密码串即可;那么我们…

Python 光速入门课程

首先说一下,为啥小编在即PHP和Golang之后,为啥又要整Python,那是因为小编最近又拿起了 " 阿里天池 " 的东西,所以小编又不得不捡起来大概五年前学习的Python,本篇文章主要讲的是最基础版本,所以比…

opencv判断灰化情况

目的 先说说理论: 在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色,R分量,G分量,B分…

使用单一ASM-HEMT模型实现从X波段到Ka波段精确的GaN HEMT非线性仿真

来源:Accurate Nonlinear GaN HEMT Simulations from X- to Ka-Band using a Single ASM-HEMT Model 摘要:本文首次研究了ASM-HEMT模型在宽频带范围内的大信号准确性。在10、20和30 GHz的频率下,通过测量和模拟功率扫描进行了比较。在相同的频…

树-王道-复试

树 1.度: 树中孩子节点个数,所有结点的度最大值为 树的度 2.有序树: 逻辑上看,树中结点的各子树从左至右是有次序的,不能互换。 **3.**树的根节点没有前驱,其他节点只有一个前驱 **4.**所有节点可有零个或…

备战蓝桥杯—— 双指针技巧巧答链表4

对于单链表相关的问题,双指针技巧是一种非常广泛且有效的解决方法。以下是一些常见问题以及使用双指针技巧解决🚀🚀: 合并两个有序链表: 使用两个指针分别指向两个链表的头部,逐一比较节点的值,…

CI/CD 之 gitlab-runner 注册执行器与踩坑

前言 上一篇已经讲了 gitlab-runner 的部署方法,这一篇我们来讲一下如何注册 gitlab-runner 执行器并创建作业 一、添加 .gitlab-ci.yml 配置文件 在需要注册 CI/CD 的项目中,增加一个 .gitlab-ci.yml 的配置文件 基本模板配置如下: sta…

【Python笔记-设计模式】桥接模式

一、说明 桥接模式是一种结构型设计模式, 主要用于将抽象部分与它的实现部分分离, 从而能在开发时分别使用,使系统更加灵活,易于扩展。 (一) 解决问题 所有 组合类的数量将以几何级数增长 抽象和实现分离:桥接模式可…

音视频技术-声反馈啸叫的产生与消除

目录 1.均衡调节: 2.移频法: 3.移相法: 4.比较法: 在扩音系统中,产生啸叫危害很大,一方面影响会议、演出等活动的正常进行,另一方面严重的啸叫会导致音响设备的损坏。 “啸叫”是“声反馈”的俗称,形成的机制复杂,消除的手段多样,专业调音师也对

Spring Boot中实现列表数据导出为Excel文件

点击下载《Spring Boot中实现列表数据导出为Excel文件》 1. 前言 本文将详细介绍在Spring Boot框架中如何将列表数据导出为Excel文件。我们将通过Apache POI库来实现这一功能,并解释其背后的原理、提供完整的流程和步骤,以及带有详细注释的代码示例。最…

【笔记】深度学习入门:基于Python的理论与实现(二)

神经网络的学习(神经网络的学习阶段,不是我们学习神经网络) 从数据中学习 训练数据和测试数据 机器学习中,一般将数据分为训练数据和测试数据两部分来进行学习和 实验等。首先,使用训练数据进行学习,寻找最…

wondows10用Electron打包threejs的项目记录

背景 电脑是用的mac,安装了parallels desktop ,想用electron 想同时打包出 苹果版本和windows版本。因为是在虚拟机里安装,它常被我重装,所以记录一下打包的整个过程。另外就是node生态太活跃,几个依赖没记录具体版本&#xff0…

软考29-上午题-【数据结构】-排序

一、排序的基本概念 1-1、稳定性 稳定性指的是相同的数据所在的位置经过排序后是否发生变化。若是排序后,次序不变,则是稳定的。 1-2、归位 每一趟排序能确定一个元素的最终位置。 1-3、内部排序 排序记录全部存放在内存中进行排序的过程。 1-4、外部…