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

十、访问控制

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

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

相关文章

【MySQL】学习连接查询和案例演示

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-KOxr1rwR9cQTlydJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

OD(8)之Mermaid流程图(flowcharts)使用详解

OD(8)之Mermaid流程图(flowcharts)使用详解 Author: Once Day Date: 2024年2月20日 漫漫长路才刚刚开始… 全系列文章可参考专栏: Linux实践记录_Once_day的博客-CSDN博客 参考文章: 关于 Mermaid | Mermaid 中文网 (nodejs.cn)Mermaid | Diagramming and charting tool‍…

聊一聊bpmn-js中的依赖注入框架didi

最近在用bpmn-js来进行flowable流程图的开发工作,不可避免地希望对其运行机制做一个大致的了解,在使用bpmn-js的过程中,bpmn-js基于diagram-js实现的插件式开发方式引起了我的兴趣。于是通过查阅源码希望对齐进一步了解发现:diagram-js是基于一个叫didi的实现的依赖注入功能…

C#通过泛型方法的重载分别调用主窗体和提示窗体

目录 一、涉及到的知识点 1.泛型方法的重载 2.使用泛型更好地实现通用化 二、示例:泛型方法及其重载 1.源码 2. 生成效果 实际开发项目时,有时会因为调用窗体或提示窗体过多,而难于管理,这时,可以通过泛型方法的…

【力扣hot100】刷题笔记Day8

前言 到了大章节【链表】了,争取两三天给它搞定!! 160. 相交链表 - 力扣(LeetCode)】 双指针 参考题解,相比于求长度右对齐再一起出发的方法简洁多了 class Solution:def getIntersectionNode(self, head…

基于FPGA的二维DCT变换和逆变换verilog实现,包含testbench

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 数据导入到matlab显示图像 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer:…

win32 汇编读文件

做了2个小程序,没有读成功;文件打开了; .386.model flat, stdcalloption casemap :noneinclude windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib include Comdlg32.inc includelib …

2024-02-21 学习笔记(DETR)

自动多模态检测验证效果不佳(过检太多)后,节后开始尝试DETR路线。 基本梳理了下DETR发展和验证的脉络,先进行相应指定场景的效果验证。 关于DETR系列的介绍,B站上比较多,迪哥的都讲的比较细。 推荐大佬的…

如何在java中使用 Excel 动态函数生成依赖列表

前言 在Excel 中,依赖列表或级联下拉列表表示两个或多个列表,其中一个列表的项根据另一个列表而变化。依赖列表通常用于Excel的业务报告,例如学术记分卡中的【班级-学生】列表、区域销售报告中的【区域-国家/地区】列表、人口仪表板中的【年…

[计网底层小探索]:实现并部署多线程并发Tcp服务器框架(基于生产者消费者模型的线程池结构)

文章目录 一.网络层与传输层协议sockaddr结构体继承体系(Linux体系)贯穿计算机系统的网络通信架构图示: 二.实现并部署多线程并发Tcp服务器框架线程池模块序列化反序列化工具模块通信信道建立模块服务器主体模块任务回调模块(根据具体应用场景可重构)Tips:DebugC代码过程中遇到…

el-table同时固定左列和右列时,出现错误情况

最近遇到一个问题,就是需求是要求表格同时固定序号列和操作列,我们用的是饿了么组件库的el-table,如下图,出现了错误情况: 解决方法就是使用doLayout方法: 如果使用了keep-alive,可以在activated里执行doLayout方法: activated() {this.$nextTick(() => {this.$ref…

【Crypto | CTF】BUUCTF RSA2

天命:密码学越来越难了,看别人笔记都不知道写啥 天命:莫慌,虽然我不会推演法,但我可以用归纳法 虽然我不知道解题的推演,但我可以背公式啊哈哈哈 虽然我不会这题,但是我也能做出来 公式我不知…

机器学习基本概念(李宏毅课程)

目录 一、概念:1、机器学习概念:2、深度学习概念: 二、深度学习中f(.)的输入和输出:1、输入:2、输出: 三、三种机器学习任务:1、Regression回归任务介绍:2、Classification分类任务介绍:3、Stru…

计算以10为底的对数 math.log10(x)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算以10为底的对数 math.log10(x) [太阳]选择题 以下代码的输出结果中正确的是? import math print("【执行】math.log10(10)") print(math.log10(10)) print("【执行】math…

【elasticsearch实战】知识库文件系统检索工具FSCrawler

需求背景 最近有一个需求需要建设一个知识库文档检索系统,这些知识库物料附件的文档居多,有较多文档格式如:PDF, Open Office, MS Office等,需要将这些格式的文件转化成文本格式,写入elasticsearch 的全文检索索引&am…

进度条小程序

文章目录 铺垫回车换行缓冲区概述强制冲刷缓冲区 简单实现倒计时功能进度条小程序版本一实例代码效果展示分析 版本二 铺垫 回车换行 回车和换行是两个独立的动作 回车是将光标移动到当前行的最开始(最左侧) 换行是竖直向下平移一行 在C语言中&…

怿星科技测试实验室(EPT LABS)服务介绍

据中国汽车工业协会数据,2023年我国汽车产销量分别达3016.1万辆和3009.4万辆,年产销量双双创历史新高,汽车行业进入了新时代。新汽车时代下的OEM竞争更激烈,汽车电子架构更复杂,研发周期更短,软件迭代更快&…

VSCODE中使用Django处理后端data和data models

链接: Python and Django tutorial in Visual Studio Code MVC的理解 在实际的程序中采用MVC的方式进行任务拆分。 Model(模型)负责封装应用程序的数据和业务逻辑部分。Model包含数据结构,数据处理逻辑以及相关的操作方法&#…

NetSuite 中Inventory Adjustment批次物料CSV导入分析二

上一篇最后我们有一个遗留问题是说,调增和调减的操作是否能在一个CSV导入模版中进行操作,经过测试后发现,是可以的,只是External ID需要在设置的时候注意对应好就OK。这里建议大家先查看上一篇文章,因为有一些完全重复…

Day14-Linux系统基础权限知识精讲

Day14-Linux系统基础权限知识精讲 1. chattr2. Linux系统权限。2.1 基础权限介绍2.2 画图讲解2.3 文件和目录权限细节总结2.4 建环境测试2.5 数字权限设置2.6 字符权限设置 给文件加特殊属性,实现特殊功能的命令。 1. chattr a 只能追加内容,不能删除。…