Nginx__基础入门篇

目录:

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.mzph.cn/news/70365.shtml

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

相关文章

leetcode 205. 同构字符串

2023.9.6 本题维护两个映射表map&#xff0c;若发现无法对应则返回false。 代码如下&#xff1a; class Solution { public:bool isIsomorphic(string s, string t) {unordered_map<char,char> m1;unordered_map<char,char> m2;for(int i0; i<s.size(); i){//相…

ctfshow vip题目限免

源码泄露 右键查看源代码即可得到flag 前台JS绕过 解法一 URL前面加上view-source: 解法二 题目描述说禁用js&#xff0c;那就禁用就行 然后和前面一样右键查看就行 协议头信息泄露 提示抓包&#xff0c;那就抓包吧 抓包直接就在返回包获得flag了 robots后台泄露 robot…

java获取jenkins发布版本信息

一.需求&#xff1a; 系统cicd发布时首页需要展示jenkins发布的版本和优化内容 二.思路: 1.jenkins创建用户和秘钥 2.找到对应构建任务信息的api 3.RestTemplate发起http请求 三.实现&#xff1a; 1.创建用户和token 2.查找jenkins API 创建 Job POST http://localhost…

Linux查端口占用的几种方式

在Linux中&#xff0c;你可以使用以下几种方式来查看端口的占用情况。 一、使用netstat命令 #安装netstat yum -y install net-tools #检测端口占用 netstat -npl | grep 端口# 几种常规用法 netstat -ntlp //查看当前所有tcp端口 netstat -ntulp | grep 80 //查看所有80端…

layui引入百度地图

<script type"text/javascript" src"//api.map.baidu.com/api?typewebgl&v1.0&ak你的ak"></script> <script src"https://code.bdstatic.com/npm/jquery1.12.4/dist/jquery.min.js"></script> <script src&…

看涨期权计算例题(期权案例计算)

看涨期权又称认购期权&#xff0c;买进期权&#xff0c;买方期权&#xff0c;买权&#xff0c;延买期权&#xff0c;或“敲进”&#xff0c;是指期权的购买者拥有在期权合约有效期内按执行价格买进一定数量标的物的权利&#xff0c;下文为大家科普看涨期权计算例题&#xff08;…

LLVM 与代码混淆技术

项目源码 什么是 LLVM LLVM 计划启动于2000年&#xff0c;开始由美国 UIUC 大学的 Chris Lattner 博士主持开展&#xff0c;后来 Apple 也加入其中。最初的目的是开发一套提供中间代码和编译基础设施的虚拟系统。 LLVM 命名最早源自于底层虚拟机&#xff08;Low Level Virtu…

ComfyUI 安装

背景&#xff1a; stable diffussion XL最先适配&#xff0c;专业性强的SD操作界面 安装步骤&#xff1a; git clone GitHub - comfyanonymous/ComfyUI: A powerful and modular stable diffusion GUI with a graph/nodes interface. 1、pip install torch torchvision torc…

window11,C盘瘦身减肥技巧

前言 本文主要说明windows11的C盘空间优化技巧&#xff0c;也叫减肥瘦身&#xff0c;目标&#xff1a;20G以内。绝大部分内容&#xff0c;也适用于window10和windows7&#xff0c;只是操作系统不同&#xff0c;操作方式略有不同。不关注C盘空间的读者&#xff0c;可以忽略此文…

2023年数维杯数学建模A题河流-地下水系统水体污染研求解全过程文档及程序

2023年数维杯数学建模 A题 河流-地下水系统水体污染研 原题再现&#xff1a; 河流对地下水有着直接地影响&#xff0c;当河流补给地下水时&#xff0c;河流一旦被污染&#xff0c;容易导致地下水以及紧依河流分布的傍河水源地将受到不同程度的污染&#xff0c;这将严重影响工…

sentinel加密狗使用及规则配置

Sentinel加密狗是一种硬件加密设备&#xff0c;用于保护软件应用程序免受未经授权的访问和复制。它可以提供软件许可管理、访问控制和数据保护等功能。下面是Sentinel加密狗的使用及规则配置的相关介绍。 Sentinel加密狗的使用 插入加密狗&#xff1a;将Sentinel加密狗插入计算…

基于语雀编辑器的在线文档编辑与查看

概述 语雀是一个非常优秀的文档和知识库工具&#xff0c;其编辑器更是非常好用&#xff0c;虽无开源版本&#xff0c;但有编译好的可以使用。本文基于语雀编辑器实现在线文档的编辑与文章的预览。 实现效果 实现 参考语雀编辑器官方文档&#xff0c;其实现需要引入以下文件&…

Google Earth Engine 的缺点和限制

随着 Google Earth Engine 在地球科学和数据计算领域越来越流行&#xff0c;网上有很多介绍Google Earth Engine 的文章及 Google Earth Engine的追随者。Google Earth Engine确实是一款伟大的产品&#xff0c;我们应该为其点赞。但由于已经有太多人在热捧了&#xff0c;我这里…

数据库设计:防止MySQL字段名与关键字相撞,保护数据完整性!

MySQL是一款广泛应用的关系型数据库管理系统&#xff0c;对于数据库设计而言&#xff0c;字段名的选择是至关重要的一环。不小心选择了和MySQL关键字相同的字段名可能导致严重的数据完整性问题。下面将深入探讨如何防止MySQL字段名与关键字相撞&#xff0c;以保护数据的完整性。…

报错: “Data is Null. This method or property cannot be called,解决方法

在进行导入的时候报错 System.Data.SqlTypes.SqlNullValueException: "Data is Null. This method or property cannot be called on Null values."是一个在使用DataReader.GetString(i)方法时出现的异常情况。当对应字段的值为Null时&#xff0c;这个方法会抛出异常…

用户案例 | 蜀海供应链基于 Apache DolphinScheduler 的数据表血缘探索与跨大版本升级经验

导读 蜀海供应链是集销售、研发、采购、生产、品保、仓储、运输、信息、金融为一体的餐饮供应链服务企业。2021年初&#xff0c;蜀海信息技术中心大数据技术研发团队开始测试用DolphinScheduler作为数据中台和各业务产品项目的任务调度系统工具。本文主要分享了蜀海供应链在海…

【Node.js】—基本知识点总结

【Node.js】—基本知识总结 一、命令行常用操作 二、Node.js注意点 Node.js中不能使用BOM和DOM操作 总结 三、Buffer buffer是一个类似于数组的对象&#xff0c;用于表示固定长度的字节序列buffer的本质是一段内存空间&#xff0c;专门用来处理二进制数据 特点&#xff1a;…

postgresql-子查询

postgresql-子查询 子查询简介派生表IN 操作符ALL 操作符ANY 操作符关联子查询横向子查询EXISTS 操作符 子查询简介 子查询&#xff08;Subquery&#xff09;是指嵌套在其他 SELECT、INSERT、UPDATE 以及 DELETE 语句中的 查询语句 子查询的作用与多表连接查询有点类似&#x…

基于Python机器学习、深度学习提升气象、海洋、水文应用教程

详情点击链接&#xff1a;基于Python机器学习、深度学习提升气象、海洋、水文应用教程 前沿 Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;能够在不同操作系统和平台使用&#xff0c;简洁的语法和解释性语言使其成为理想的脚本语言。除了标准…

链表例题小总结:

链表&#xff1a; 第一种题型&#xff1a;双指针 力扣203&#xff1a;移除链表元素 力扣题目链接 题意&#xff1a;删除链表中等于给定值 val 的所有节点。示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&#xff1…