Nginx__基础入门篇

news2024/12/25 16:04:51

目录:

Nginx的优势

HTTP协议详解

Nginx部署-Yum

Nginx配置文件

Nginx编译参数

Nginx基本配置

Nginx日志Log

Nginx WEB模块

Nginx 访问限制

Nginx 访问控制


Nginx的优势

Nginx (engine x) 是一个高性能的HTTP(解决C10k的问题)和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。

1、作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高。

2、作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度。

3、作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡。

4、在性能方面,Nginx是专门为性能优化而开发的,实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对5万个并发连接数的响应,而且只占用很低的内存资源。

5、在稳定性方面,Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持1万个没有活动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的。

6、在高可用性方面,Nginx支持热部署,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7x24小时不间断地运行。

总之就是{

                高并发

                IO多路复用

                epoll

                异步

                非阻塞

                }

HTTP协议详解

HTTP--Hyper Text Transfer Protocol,超文本传输协议,是一种建立在TCP上的无状态连接,整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。其中一个请求的开始到一个响应的结束称为事务,当一个事物结束后还会在服务端添加一条日志条目。

Nginx部署-Yum

官方链接:http://www.nginx.org

1.yum install yum-utils

2.vim /etc/yum.repos.d/nginx.repo

3./etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

4.yum-config-manager --enable nginx-mainline

5.yum -y install nginx

6.systemctl start nginx

7.systemctl enable nginx

8.关闭防火墙systemctl  stop firewalld

   关闭SELinux  setenforce 0

9.查看版本nginx -V

10.浏览器进行测试

Nginx配置文件

查看所有配置文件    rpm  -ql  nginx

常用的配置文件

/usr/share/nginx/html/index.html     默认主页

/var/log/nginx   日志文件夹

/var/cache/nginx  缓存文件夹

/etc/logrotate.d/nginx      日志轮转

/etc/nginx/nginx.conf       总配置文件

/etc/nginx/conf.d              子配置文件

/etc/nginx/conf.d/default.conf     默认网站配置文件

/usr/lib64/nginx      Nginx模块目录

/etc/nginx/koi-utf                字符集,文件编码

/etc/nginx/mime.types        文件关联程序

/etc/nginx/modules             第三方模块

/usr/lib/systemd/system/nginx-debug.servicenginx        调试程序启动脚本

Nginx编译参数

Nginx常用编译参数

--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_temp        php缓存

--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp        python缓存

--with-compat        启用动态模块兼容性

--user=nginx        用户

--group=nginx        组

--with-http_auth_request_module        认证模块

--with-http_dav_module        增加上传PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)默认情况下为关闭

--with-http_flv_module        NGINX 添加MP4、FLV视频支持模块

--with-http_gunzip_module        压缩模块

--with-http_mp4_module        多媒体模块

--with-http_random_index_module        nginx显示随机首页模块

--with-http_realip_module        Nginx获取真实IP模块

--with-http_secure_link_module        nginx安全下载模块

--with-http_slice_module        nginx 中文文档

--with-http_ssl_module        安全模块

--with-http_stub_status_module        访问状态

--with-http_sub_module        nginx替换网站响应内容

--with-mail        邮件客户端

cpu优化参数:{

                         --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -                        fexceptions -fstack-protector-strong --
                         param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' 
                         --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' 

                         }

Nginx基本配置

Nginx配置文件地址:/etc/nginx/nginx.conf

nginx主配置文件(通常为`nginx.conf`)是Nginx服务器的核心配置文件,包含了对服务器行为的整体定义。以下是nginx主配置文件的一般结构和常见指令:

1. `user`: 定义nginx工作进程的运行用户和用户组。
2. `worker_processes`: 指定nginx工作进程的数量,通常设置为CPU核心数的倍数。
3. `error_log`: 设置错误日志的位置和级别。
4. `pid`: 指定nginx工作进程的PID文件的位置。
5. `events`: 配置nginx处理事件的模块和参数,例如`worker_connections`用于设置每个工作进程的最大连接数。
6. `http`: 定义nginx处理HTTP请求的配置。
   - `include`: 引入其他配置文件。
   - `default_type`: 指定默认的MIME类型。
   - `log_format`: 配置访问日志格式。
   - `access_log`: 指定访问日志的位置和格式。
   - `sendfile`: 配置是否启用sendfile传输文件。
   - `keepalive_timeout`: 指定客户端连接的超时时间。
   - `gzip`: 配置响应数据的压缩方式。
   - `server`: 定义虚拟主机的配置。
     - `listen`: 指定监听的端口号和协议。
     - `server_name`: 指定虚拟主机的域名。
     - `location`: 定义请求URL路径的匹配规则和相应的处理逻辑。

以上是nginx主配置文件的一般结构和一些常见指令。实际上,nginx的配置非常灵活,还可以使用许多其他指令和模块来满足具体的需求。你可以根据你的具体需求自定义和扩展nginx的主配置文件。

虚拟主机配置文件地址:/etc/nginx/conf.d/~~~~~

在Nginx中,虚拟主机的配置文件通常是在nginx主配置文件(`nginx.conf`)中的`http`块内通过`server`块进行定义的。每个虚拟主机都有单独的`server`块,用于指定特定域名或监听端口的配置。以下是一个示例:

```
http {
  ...

  server {
    listen 80;
    server_name example.com;
    root /path/to/root;
    
    location / {
      # 该虚拟主机的处理逻辑
    }
  }

  server {
    listen 80;
    server_name subdomain.example.com;
    root /path/to/subdomain;
    
    location / {
      # 不同域名的虚拟主机可以有不同的处理逻辑
    }
  }

  ...
}
```

在上述示例中,定义了两个虚拟主机的配置。第一个虚拟主机使用`example.com`作为域名,监听80端口,并将请求的根目录设置为`/path/to/root`。第二个虚拟主机使用`subdomain.example.com`作为域名,也监听80端口,并将请求的根目录设置为`/path/to/subdomain`。

每个虚拟主机的`server`块内可以使用`location`块来定义特定URL路径的处理逻辑。可以根据需要为每个虚拟主机指定不同的代理、缓存、重定向等动作。

你可以根据实际需求在`http`块中添加更多的虚拟主机配置,以支持不同域名或监听端口的网站服务。同时,你也可以使用`include`指令来将虚拟主机的配置文件拆分成独立的文件,以提高配置文件的可读性和维护性。

Nginx日志Log

正确日志:access_log

192.168.100.254 - - [17/Dec/2017:14:45:59 +0800] "GET /nginx-logo.png HTTP/1.1" 200 368 "http://192.168.100.10/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0" "-"

  • 某条日志记录含义

  • 192.远程主机IP

  • - - 用户

  • 【2017】时间

  • get获得,下载,还有post提交。

  • /nginx-logo.png 下载图片

  • http版本

  • 状态码 什么结果。对,还是错

  • 368 大小

  • 引用自哪个连接,主页http://192.168.100.10/

  • Mozilla 5.0浏览器的版本

  • Windows NT 客户端系统类型

  • -远程客户端主机地址 (请看注释)

错误日志:error_log

Nginx WEB模块

连接状态

随机主页

替换模块

文件读取

文件压缩

页面缓存

防盗链

Nginx 访问限制

ngx_http_limit_req_module                请求频率限制

ngx_http_limit_conn_module                连接频率限制

Nginx 访问控制

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

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

相关文章

如何解决前端传递数据给后端时精度丢失问题

解决精度丢失 有时候我们在进行修改操作时,发现修改既不报错也不生效。我们进行排查后发现服务器端将数据返回给前端时没有出错,但是前端js将数据进行处理时却出错了,因为id是Long类型的,而js在处理后端返回给前端的Long类型数据…

VMware ubuntu空间越用越大

前言 用Ubuntu 1604编译了RK3399的SDK,之后删了一些多余的文件,df - h 已用21G,但window硬盘上还总用了185GB,采用了碎片整理,压缩无法解决 1 启动Ubuntu后, 安装 VMware Tools(T) 、 2 打开ubuntu终端,压…

Jmeter 三种提取方式 —— 关联实例

当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理 Jmeter中常用的关联方法: 正则表达式提取器、XPath提取器、JSON提取器​​​​​​ regex: (.*?)-(.*?)-(.*?)\n.: 匹配除换行符(…

Windows下Git Bash的基本使用

创建版本库 git init 初始化完成后,会在目录下创建一个.git的隐藏目录,用来存放项目信息。 、 添加文件到版本库 在项目目录下新建文件readme.txt,内容为 Git is a version control system Git is a free software This is my first Try …

深度学习推荐系统(六)DeepFM模型及其在Criteo数据集上的应用

深度学习推荐系统(六)DeepFM模型及其在Criteo数据集上的应用 在2016年, 随着微软的Deep Crossing, 谷歌的Wide&Deep以及FNN、PNN等一大批优秀的深度学习模型被提出, 推荐系统全面进入了深度学习时代, 时至今日, 依…

uniapp项目实践总结(十一)自定义网络检测组件

导语:很多时候手机设备会突然没网,这时候就需要一个网络检测组件,在没网的时候显示提示用户,提供用户体验。 目录 准备工作原理分析组件实现实战演练案例展示 准备工作 在components新建一个q-online文件夹,并新建一个q-online.vue的组件;…

华为云云服务器评测|安装Java8环境 配置环境变量 spring项目部署 【!】存在问题未解决

目录 引出安装JDK8环境查看是否有默认jar上传Linux版本的jar包解压压缩包配置环境变量 上传jar包以及运行问题上传Jar包运行控制台开放端口访问失败—见问题记录关闭Jar的方式1.进程kill -92.ctrl c退出 问题记录:【!】未解决各种方式查看端口情况联系工程师最后排查…

【C++基础】5. 变量作用域

文章目录 【 1. 局部变量 】【 2. 全局变量 】【 3. 局部变量和全局变量的初始化 】 作用域是程序的一个区域,一般来说有三个地方可以定义变量: 在函数或一个代码块内部声明的变量,称为局部变量。 在函数参数的定义中声明的变量,称…

关于HarmonyOS元服务的主题演讲与合作签约

一、感言 坚持中,总会有很多意想不到的收获。 前几次参与HDC时更多的是观众、开发者、专家的身份,以参观、学习、交流为主。 通过几年的努力,和HarmonyOS功能成长,在2023年的HDC大会中,有了我的演讲,并带领…

永安通配符和泛域名SSL证书的区别

随着互联网的快速发展,现在大多数人都已经习惯在网上交流、购物、学习,因此互联网上的各种类型的网站越来越多,不仅是企事业单位创建各种类型的网站,个人开发者创建的网站也越来越多,一张单域名SSL就不能满足个人或者企…

pdf怎么合并在一起?几种方法快速合并

pdf怎么合并在一起?在处理PDF文件时,有时需要将多个PDF文件合并成一个文件。这种操作在日常学习、工作和生活中很常见。但是,如果没有专业的PDF工具,这项任务可能会变得非常繁琐、耗时和费力。因此,我们需要一款功能强…

java+ssm+mysql电梯管理系统

项目介绍: 使用javassmmysql开发的电梯管理系统,系统包含管理员,监管员、安全员、维保员角色,功能如下: 管理员:系统用户管理(监管员、安全员、维保员);系统公告&#…

哈弗猛龙,年轻人的新能源越野车

在 2023 成都车展上,哈弗汽车正式公布猛龙的预售价格,新车的预售价格区间为 16-19 万元,作为一台插电式混合动力车型,新车搭载 1.5THi4 的混动系统,提供纯电续航 102km 和 145km 两个纯电续航版本。 外观造型方面&…

数据库性能测试实践:慢查询统计分析

01、慢查询 查看是否开启慢查询 mysql> show variables like %slow%’; 如图所示: 系统变量log_slow_admin_statements 表示是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志启用log_slow_extra系统变量 (从MySQL 8.0.14开始提供&a…

Object —— Guide Groom

从skin几何体生成引导线,并在其节点内可进一步处理引导线;内嵌Hair Generate节点; 注:skin几何体应是静态的,使用Guide Deform使引导线跟随动态skin; Groom Source 可使用第二端口输入的Groom;可…

国内首个侧重能源金融交易的中国社科院-美国杜兰大学能源管理硕士

国内首个侧重能源金融交易的中国社科院-美国杜兰大学能源管理硕士 作为国内首个且唯一侧重能源金融交易的硕士项目,中国社科院与美国杜兰大学合作举办的能源管理硕士(Master of Management in Energy)项目旨在培养具备国际视野的高级能源金融…

微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】

微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】 微信小程序代码部分PHP后端部分错误显示解决方案及步骤(总结) 微信小程序代码部分 //给后端接口发送一个json请求,并且得通过token鉴权ToUpdatePwd(){wx.r…

【数据结构篇】线性表2 —— 栈和队列

前言:上一篇我们介绍了顺序表和链表 (https://blog.csdn.net/iiiiiihuang/article/details/132615465?spm1001.2014.3001.5501), 这一篇我们将介绍栈和队列,栈和队列都是基于顺序表和链表来实现的 目录 栈&#xff…

Metinfo4.0逻辑漏洞

搭建网站 MetInfo历史版本与文件,这里下载 需要进行安装 漏洞复现 点击会员中心进行注册 点击找回密码,输入刚刚创建的账号,然后抓包 登录后修改基本信息 直接抓包修改admin用户的密码 使用admin用户和密码654321,发现登录成功…

波奇学C++:继承

继承是为了复用代码&#xff0c;成员的变量或者成员函数 class Person { public:protected:string _name"li";int _age1; }; class Student :public Person { public:void print(){cout << _age;} protected:int _stuid2; }; 子类student公有继承基类Person,…