1、概述

今天来详解一下Nginx的配置文件,以及给出一些配置建议,希望能对大家有所帮助。

2、nginx.conf

1)配置文件位置

nginx 安装目录的 conf 文件夹下,例如:/usr/local/nginx/conf/nginx.conf 。

也可以将配置文件放置在任意位置,在启动Nginx时指定配置文件的位置,例如:./nginx -c /home/nginx.conf

2)worker_processes

设置 worker 的数量,Nginx的进程模型采用的是master、worker模式,一个master负责协调,多个worker负责与客户端交互。

此处设置为 auto 即可。

 3)events

设置使用的模型和每个 worker 的连接数。

Linux操作系统中模型建议使用 epoll。

worker 的连接数通常设置为 10240 即可,当然如果硬件资源非常好,也可以适当加大。

4)include

包含另一个文件的内容,将另一个文件的内容放在标记处。

多个文件可以写多个 include,也可以使用通配符匹配多个文件。

 5)sendfile 和 tcp_nopush

sendfile: 设置文件高效传输是否开启,默认开启。

tcp_nopush:必须是 sendfile 值为 on 时才有效,当 tcp_nopush 设置为 on 代表当数据包累计到一定大小时再发送,有助于提升文件传输效率。

建议都设置为 on。

 6)keepalive_timeout

客户端连接服务器的超时时间,在连接断开前,客户端再次与服务器进行交互,可复用此连接,不需要重新建立一个连接,减少了资源的开销。

设置为 0,则表示交互完立即断开连接。此值保持默认即可。

 7)gzip

设置为 on,代表会先将数据压缩再进行传输,这样做会增加传输的效率,节省带宽,但会影响服务器CPU的性能。

开启此配置,还需要配置一些额外的属性。

此处可以权衡是节省带宽还是提高CPU性能,建议开启,根据实际情况配置。

gzip on;

gzip_min_length 512;   # 限制最小压缩,单位字节,小于该值则不会压缩

gzip_comp_level 5;     # 压缩的级别,值为1到9,级别越高压缩的比例越大,cpu消耗越多

gzip_types text/plain application/javascript text/css image/jpeg image/gif image/png application/json; # 需要压缩的文件类型

8)server

一个server块就是一个虚拟的服务。

在server块中可以指定虚拟服务的 端口、服务名、路由规则等信息。

server可以有多个。

一个server下,location也可以有多个。

    server {
listen 90; # 端口
server_name localhost; # 服务名,可以是IP地址或者域名,当端口相同时,会根据服务名选择走哪个路由规则 location / { # 根路径路由规则
root html; # 对应nginx安装目标下的html文件夹,也可以设置为绝对路径,例如:root /home/html;
index hello.html; # 指定默认首页为 hello.html
}
    location /hello {
       root /home/hello;
       # index 省略,代表没有默认页
     }
      
error_page 500 502 503 504 /50x.html; # 指定这些状态码跳转的错误页
location = /50x.html {
root html;
}
}

9)location的匹配规则详解

server块中包含了location块,location块在一个server下可以有多个,主要是配置请求的路由规则。

nginx根据请求的资源路径,与location块进行匹配,然后根据location的配置对路由进行转发。

location支撑多种匹配规则,下面就具体说一说。

精确匹配

    location / {            # 根路径路由规则
root html; # 对应nginx安装目标下的html文件夹,也可以设置为绝对路径,例如:root /home/html;
index hello.html; # 指定默认首页为 hello.html
}
    location /hello {
      root /home/hello;
      # index 省略,代表没有默认页
    }

正则表达式匹配

    location ~* \.(GIF|PNG|jpg|bmp|jpeg) {  # *代表不区分大小写
      root /home/img;
    }

匹配以某个路径开头的请求

    location ^~ /server/page/ {
    root /home/page;
    }

3、综述

今天对Nginx配置做了详细讲解,一些Nginx的高级应用,会在后面单独介绍。希望大家多多沟通交流,共同成长。

Nginx配置文件详解与优化建议的更多相关文章

  1. apache配置文件详解与优化

    apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...

  2. nginx之旅(第一篇):nginx下载安装、nginx启动与关闭、nginx配置文件详解、nginx默认网站

    一.nginx下载安装 版本nginx 1.15.5 系统环境centos7.5(本机ip192.168.199.228) 关闭selinux 和防火墙firewall 1.下载 wget http: ...

  3. 一、Nginx配置文件详解

    配置文件介绍 主要有两部分:分别是 main:主体部分 http{}:虚拟主机配置部分 配置指令主要以分号结尾:配置语法:directive value1 [value2 ....] 支持使用的变量 ...

  4. Nginx系列(10)- Nginx配置文件详解

    nginx文件结构 ... #全局块 events { #events块 ... } http #http块 { ... #http全局块 server #server块 { ... #server全 ...

  5. Nginx配置文件详解

    Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势. ######Nginx配置文件nginx.conf中文详解##### #定义Ngin ...

  6. Nginx教程(五) Nginx配置文件详解

    一. Nginx配置文件nginx.conf中文详解 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processe ...

  7. Nginx教程(五) Nginx配置文件详解 (转)

    一. Nginx配置文件nginx.conf中文详解 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processe ...

  8. Nginx:Nginx配置文件详解

    Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势. 如下是Nginx的配置详解: ######Nginx配置文件nginx.conf中文 ...

  9. nginx配置文件详解(三)

    nginx配置文件详细解析 nginx安装目录:  /usr/local/nginx 配置文件:  /usr/local/nginx/conf 目录下的 nginx.conf文件 nginx优化方法1 ...

随机推荐

  1. python读取数据写入excel的四种操作

    Python对Excel的读写主要有:xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种 xlutils结合xlrd: 操作的是以xls后缀的excel,读取文件保留原格式 ...

  2. Qt 入门 ---- 如何在程序窗口显示图片?

    步骤: 1. 选择资源(准备图片) 2. 加载资源(导入图片) 3. 使用资源(显示图片) 具体操作流程: ① 从网上寻找合适的图片素材,下载到本地,在项目根目录下创建一个images文件夹存储程序中 ...

  3. CC2B本地环境搭建步骤及部署问题解决

    由于最近的项目是之前没接触过的netbeans+glassfish,记录一下最近在工作中搭建本地环境的步骤及遇到的一些问题解决方法: 1.配置java jdk 此过程中遇到一个问题就是在配置系统环境变 ...

  4. 共享内存 & Actor并发模型哪个更快?

    HI,前几天被.NET圈纪检委@懒得勤快问到共享内存和Actor并发模型哪个速度更快. 前文传送门: 说实在,我内心10w头羊驼跑过...... 先说结论 首先两者对于并发的风格模型不一样. 共享内存 ...

  5. Python设计模式: 最佳的"策略"模式实践代码

    Python设计模式: 最佳的"策略"模式实践代码 今天抽空看了下流畅的python,发现里面介绍了不少python自带的库的使用实例,用起来非常的优雅. 平时用Python来写爬 ...

  6. javaSE面向对象编程

    面向对象编程 构造器 构造器就是和类名相同但无返回类型的方法. public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; ...

  7. 超详细Java基础-多态

    茫茫人海千千万万,感谢这一秒你看到这里.希望我的能对你的有所帮助!共勉! 愿你在未来的日子,保持热爱,奔赴山海! Java基础知识(多态) 多态 多态就是指程序中定义的引用变量所指向的具体类型和通过该 ...

  8. Linux下MySQL多实例部署记录

    什么是MySQL多实例 简单地说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(3306.3307),同时运行多个Mysql服务进程,这些服务进程通过不同的socket监听不同的服务端 ...

  9. 手把手和你一起实现一个Web框架实战——EzWeb框架(四)[Go语言笔记]Go项目实战

    手把手和你一起实现一个Web框架实战--EzWeb框架(四)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 这一篇文章主要实现路由组功能.实现路由 ...

  10. 解决微信官方SDK给出1.4.0等版本没有预览文件(previewFile)等接口

    使用苹果手机测试 调用微信的js-sdk在系统中实现上传.预览附件的功能.在自己的手机测试通过后,直接丢给QA测试了 本以为相安无事了,没想到QA用安卓手机测的时候居然不得,使用的是下载下来的jwei ...