Nginx 配置文件

Nginx的配置文件的组成部分:

  • 主配置文件:nginx.conf
  • 子配置文件:include conf.d/*.conf

全局配置

nginx 有多种模块

  • 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能
  • 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等
  • 可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等
  • 邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持
  • Stream服务模块: 实现反向代理功能,包括TCP协议代理
  • 第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

1. 关闭版本或修改版本

查看nginx版本信息

关闭版本号

[root@localhost ~]# vim /etc/nginx/nginx.conf   //修改配置信息
  http {                            //在http语句块中进行修改
      server_tokens  off;   //关闭版本

[root@localhost ~]# nginx -s reload    //重新加载

`注意:`这是唯一一个调优是在http 语句块的,其他都在全局

2. 修改启动的进程数

worker_processes  1;  
#系统默认允许的启动工作进程数数量,和你真实的cpu数量有关

worker_processes auto;
#如果设置为auto,是你真实的cpu数量

3. cpu与work进程绑定

将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占一个核心CPU,但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。

CPU序号:

CPU MASK: 00000001:0号CPU

          00000010:1号CPU

          ................

                    10000000:7号CPU

worker_cpu_affinity 00000001 00000010 00000100 00001000;第0号---第3号CPU  

#序号绑定cpu    亲缘性

worker_cpu_affinity 00000101 00001010;

#同一个work  可以绑定  两个cpu可以这么写 但是不建议,本来就是 不希望飘动,这样也是飘动

4. nginx进程的优先级

当你想将nginx的work进程的优先级调高,可以使用nice设置。

worker_priority 0;
//工作进程优先级,-20~20(19)

5. 调试work进程打开的文件的个数

nginx 默认所有子进程一共可以打开的文件数量有限,所以需要优化数值。

worker_rlimit_nofile 65536;
//所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制。
//最好与ulimit -n 或者limits.conf的值保持一致。

events块(nginx工作模式)

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 work process 可以同时支持的最大连接数等。

`events  I/O模型调优`

events {worker_connections  65536;  //设置单个工作进程的最大并发连接数use epoll;//使用epoll事件驱动,Nginx支持众多的事件驱动,比如:select、poll、epoll,只能设置在events模块中设置。accept_mutex on;//on为同一时刻一个请求轮流由work进程处理,而防止被同时唤醒所有worker,避免多个睡眠进程被唤醒的设置,默认为off,新请求会唤醒所有worker进程,此过程也称为"惊群",因此nginx刚安装完以后要进行适当的优化。建议设置为onmulti_accept on;//ON时Nginx服务器的每个工作进程可以同时接受多个新的网络连接,此指令默认为off,即默认为一个工作进程只能一次接受一个新的网络连接,打开后几个同时接受多个。建议设置为on
}

http块(http设置)

http 是一个大的语句块,包含若干个小的语句块(比如server语句块)

http {include  /etc/nginx/mime.types;#include 指令用于将其他文件或目录中的配置内容包含到当前位置。......  #各server的公共配置server {    #每个server用于定义一个虚拟主机,第一个server为默认虚拟服务器...}server {     ...server_name   #虚拟主机名root     #主目录#sever 下的 root指定了主页文件的位置alias     #路径别名location [OPERATOR] URL {     #指定URL的特性...if CONDITION {...}}}
}

server块(主机设置)

一个server就是一个虚拟主机

server作用:对主机的设置,例如端口号、ip地址、域名、主站点、日志 (具体参考官方文档)

1.1 server下的root

root指定了主页文件的位置

​
server {
listen 80;
server_name  www.pc.com;
root  /data/html/;location /cxk {root  /data/cxk}
}

root 类似与追加
实际 你该访问的页面 是 /data/cxk/cxk/

1.2 server块 构建虚拟主机

基于域名

实验内容: 用一台服务器生成2个站点:手机端、pc端

实验步骤:

编辑主配置文件

[root@node1 ~]#  vim  /apps/nginx/conf/nginx.conf   //编辑主配置文件http {include       mime.types;include  /apps/nginx/conf.d/*.conf;      //添加include语句default_type  application/octet-stream;server_tokens  off;[root@node1 ~]#  nginx -s reload  //重新加载

编辑子配置文件

[root@node1 data]#  mkdir  {pc,phone}    //建立pc、phone文件夹
[root@node1 data]#  cd pc
[root@node1 pc]#  echo pc > index.html   //生成pc页面
[root@node1 pc]#  cat index.html
pc
[root@node1 pc]#  cd ..
[root@node1 data]#  cd phone/ 
[root@node1 phone]#  echo phone > index.html   //生成phone页面
[root@node1 phone]#  cat index.html
phone[root@node2 ~]#  vim /etc/hosts     //编辑主机2配置文件,添加域名
172.16.88.8  www.pc.com  www.phone.com

准备页面

​[root@node1 conf.d]#  cd /apps/nginx/conf.d   //切换到子配置文件目录下
[root@node1 conf.d]#  vim pc.conf     //编辑子配置文件pc.confserver  {
listen 80;
server_name  www.pc.com;
root  /data/pc/;
}[root@node1 conf.d]#  cp pc.conf m.conf
[root@node1 conf.d]#  vim m.conf   //编辑子配置文件m.conf
server  {
listen 80;
server_name  www.phone.com;
root  /data/phone/;
}[root@node1 conf.d]#  nginx -t   //检查文件格式
[root@node1 conf.d]#  nginx -s reload   //重新加载

验证

[root@node2 ~]#  curl www.pc.com
pc
[root@node2 ~]#  curl www.phone.com
phone

基于端口

`修改配置文件:`
[root@node1 conf.d]#  vim pc.conf   //编辑子配置文件pc.conf
server  {
listen 9527;
server_name  www.pc.com;
root  /data/pc/;
}
[root@node1 conf.d]#  vim m.conf    //编辑子配置文件m.conf
server  {
listen 80;
server_name  www.phone.com;
root  /data/phone/;
}
[root@node1 conf.d]#  nginx -t          //检查文件格式
[root@node1 conf.d]#  nginx -s reload   //重新加载

`准备页面`

`验证:`
[root@node2 ~]#  curl 172.16.88.8
phone
[root@node2 ~]#  curl 172.16.88.8:9527
pc

基于ip

`修改配置文件:`
[root@node1 conf.d]#  vim pc.conf    //编辑子配置文件pc.conf
server  {
listen 172.16.88.8:80;
server_name  www.pc.com;
root  /data/pc/;
}

[root@node1 conf.d]#  ifconfig ens33:0 172.16.88.100  //添加一个虚拟ip
[root@node1 conf.d]#  vim m.conf     //编辑子配置文件m.conf
server {
listen 172.16.88.100:80;
server_name www.phone.com;
root /data/phone;
}

[root@node1 conf.d]#  nginx -s reload   //重新加载

`准备页面`

`验证:`
[root@node2 ~]#  curl 172.16.88.8
pc
[root@node2 ~]#  curl 172.16.88.100
phone

alias 别名

alise相当于置换

​server {listen 80;server_name www.pc.com;location /cxk {root /data/cxk/;//相当于追加,访问172.16.88.8/cxk等于访问172.16.88.8/data/cxk/cxk}location /cxk {alias /data/;//相当于替换,访问172.16.88.8/cxk就是访问172.16.88.8/data/}
}

 location块(URL匹配)

在一个server中location配置段可存在多个,用于实现从url到文件系统的路径映射。

语法规则:

符号

含义

举例

=

精确匹配

location  =/cxk

^~

以什么开头

location  ^~ /cxk

~

开启正则表达式,区分大小写

location  ~ /cxk

~*

开启正则表达式,不区分大小写

location  ~* /cxk

不加符号

匹配起始于此uri的所有的uri

location   /cxk

匹配优先级从高到低: => ^~> ~/~*>不带符号

`前缀匹配:` =  ^~  不带符号 

`正则匹配:` ~  ~*          
先找出所有的前缀匹配,最后再看正则匹配

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

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

相关文章

46 - 删除重复的电子邮箱(高频 SQL 50 题基础版)

46 - 删除重复的电子邮箱 delete p1 from Person p1,Person p2 where p1.emailp2.email and p1.id>p2.id;

ios13多窗口(UIWindowScene)学习笔记

ios13引入了UIWindowScene类、UIWindowSceneDelegate协议以便支持多窗口功能,但其适用于ipad,不适用于iphone,因为iphone不支持多窗口功能。注意,这里说的窗口不是UIWindow,而是UIWindowScene。 ios13前后的app的UI架…

2024年【建筑电工(建筑特殊工种)】考试试题及建筑电工(建筑特殊工种)模拟考试题库

题库来源:安全生产模拟考试一点通公众号小程序 2024年【建筑电工(建筑特殊工种)】考试试题及建筑电工(建筑特殊工种)模拟考试题库,包含建筑电工(建筑特殊工种)考试试题答案和解析及建筑电工(建筑特殊工种)模拟考试题库练习。安全生产模拟考试一点通结合…

2024年【广东省安全员A证第四批(主要负责人)】新版试题及广东省安全员A证第四批(主要负责人)考试试卷

题库来源:安全生产模拟考试一点通公众号小程序 2024年【广东省安全员A证第四批(主要负责人)】新版试题及广东省安全员A证第四批(主要负责人)考试试卷,包含广东省安全员A证第四批(主要负责人&am…

Go线程实现模型-P

P 概述 P是G能够在M中运行关键。Go的运行时系统会适时地让P与不同的M建立或断开关联,以使P中的那些可运行的G能够及时获得,这与操作系统内核在CPU之上实时切换不同进程或线程的情况类似 改变P的数量 改变单个Go程序间拥有的P的最大数量有两种方法 调…

Android - 利用 jitpack 免费发布闭源 aar

一、简述 目前(Android/java) library 的主要发布仓库有 MavenCentral 和 jitpack,我之前也对这两种仓库的发布流程做了详细介绍: 发布至 MavenCentral: https://juejin.cn/post/6953598441817636900发布至 jitpack: https://juejin.cn/post/7040733114506674183#heading-…

图灵虚拟机配置

导入虚拟机 点击新建,选择虚拟硬盘文件 环境机器.vmdk 配置网络

浅谈区块链

区块链是一种分布式数据库技术,也被称为分布式账本技术。它的本质是一个去中心化的数据库,使用密码学相关联产生的数据块串连而成,用于验证其信息的有效性(防伪)和生成下一个区块。区块链具有“不可伪造”“全程留痕”…

【后端面试题】【中间件】【NoSQL】ElasticSearch索引机制和高性能的面试思路

Elasticsearch的索引机制 Elasticsearch使用的是倒排索引,所谓的倒排索引是相对于正排索引而言的。 在一般的文件系统中,索引是文档映射到关键字,而倒排索引则相反,是从关键字映射到文档。 如果没有倒排索引的话,想找…

001:开源交易系统开发实战开篇

本专栏采用融入【主力思维】的方法学,包含数据抓取、特征模型开发、历史验证回归测试、每日动态风险评估管理等技术,较大的增强股票投资胜率,让IT开发者拥有一套实用的属于自己思路的专用交易软件。 先简要介绍下系统运行的成果和项目架构&a…

不可编辑的加密word文件破解

文章目录 1 将word文件另存为xml格式2 使用记事本打开xml格式的word文件3 ctrlF查找w:enforcement4 将w:enforcement"1"改成w:enforcement"0"并保存5 用word打开xml格式的文件并另存为docx格式6 成功可以编辑 1 将word文件另存为xml格式 2 使用记事本打开x…

双指针-旋转链表

目录 一、问题描述 二、解题思路 三、代码实现 四、刷题链接 一、问题描述 二、解题思路 1.先确定链表长度为len 2.注意当K>len时,如果每个节点都往右移动len个位置,等价于不移动,所以需要求KK%len。 3.所有元素右移K个位置&#xf…

uniapp运行到小程序Vue.use注册全局组件不起作用

真想吐槽一下小程序,uniapp运行到小程序使用Vue.use注册全局组件根本不起作用,也不报错,这只是其中一个问题,其他还有很多问题,比如vue中正常使用的没问题的语法,运行到小程序就不行,又是包太大…

【Python机器学习】自动化特征选择——单变量统计

添加更多特征会使所有的模型变得更加复杂,从而增大过拟合的可能性。 在添加新特征或处理一般的高位数据集时,最好将特征的数量减少到只包含最有用的那些特征,并删除其余特征,这样会得到泛化能力更好、更简单的模型。 对于如何判…

生成式人工智能和机器人技术是否即将取得最后的突破?

了解生成式人工智能与机器人技术的融合如何彻底改变从医疗保健到娱乐等行业 想象一下这样一个世界,机器人可以谱写交响乐、画出杰作、写出小说。这种创造力与自动化的迷人融合,由 生成式人工智能,不再是梦想;它正在以重大方式重塑…

1Panel开源面板项目GitHub Star数量突破20,000!

截至2024年6月25日9:00,FIT2CLOUD飞致云旗下开源项目——1Panel开源Linux服务器运维管理面板GitHub Star数超过20,000个! 继Halo和JumpServer之后,1Panel成为飞致云旗下第三个GitHub Star数量超过20,000个的开源项目,也是飞致云旗…

Python 类

文章目录 定义类与对象成员方法构造方法魔术方法私有成员继承复写父类成员调用父类成员 多态 定义 class 类名:成员变量成员方法变量类名()# 创建对象 变量.成员变量# 使用成员变量 变量.成员方法类与对象 类相当于设计图纸,规定了各种属性与行为。 对象也就是按照…

(单机架设教程)3D剑踪

前言 今天给大家带来一款单机游戏的架设:3D剑踪 如今市面上的资源参差不齐,大部分的都不能运行,本人亲自测试,运行视频如下: 3D剑踪 搭建教程 此游戏架设不需要虚拟机, 我们先解压 “3D剑踪.zip” &…

因果解耦表征 | (香港理工ICLR24)联合学习个性化因果不变表示以应对异构联邦客户端

原文:Learning Personalized Causally Invariant Representations for Heterogeneous Federated Clients 地址:https://openreview.net/forum?id8FHWkY0SwF 代码:未知 出版:ICLR 2024 机构: 香港理工大学、香港科技大学 解读&…

JAVA期末速成库(12)第十三章

一、习题介绍 第十三章 Check Point:P501 13.3,13.17,13.28,13.29 Programming Exercise:13.1,13.6,13.11 二、习题及答案 Check Point: 13.3 True or false? a. An abst…