Nginx配置文件详解与优化建议
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配置文件详解与优化建议的更多相关文章
- apache配置文件详解与优化
apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...
- nginx之旅(第一篇):nginx下载安装、nginx启动与关闭、nginx配置文件详解、nginx默认网站
一.nginx下载安装 版本nginx 1.15.5 系统环境centos7.5(本机ip192.168.199.228) 关闭selinux 和防火墙firewall 1.下载 wget http: ...
- 一、Nginx配置文件详解
配置文件介绍 主要有两部分:分别是 main:主体部分 http{}:虚拟主机配置部分 配置指令主要以分号结尾:配置语法:directive value1 [value2 ....] 支持使用的变量 ...
- Nginx系列(10)- Nginx配置文件详解
nginx文件结构 ... #全局块 events { #events块 ... } http #http块 { ... #http全局块 server #server块 { ... #server全 ...
- Nginx配置文件详解
Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势. ######Nginx配置文件nginx.conf中文详解##### #定义Ngin ...
- Nginx教程(五) Nginx配置文件详解
一. Nginx配置文件nginx.conf中文详解 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processe ...
- Nginx教程(五) Nginx配置文件详解 (转)
一. Nginx配置文件nginx.conf中文详解 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processe ...
- Nginx:Nginx配置文件详解
Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势. 如下是Nginx的配置详解: ######Nginx配置文件nginx.conf中文 ...
- nginx配置文件详解(三)
nginx配置文件详细解析 nginx安装目录: /usr/local/nginx 配置文件: /usr/local/nginx/conf 目录下的 nginx.conf文件 nginx优化方法1 ...
随机推荐
- SAML 2.0 实例分析 idp向sp发送响应(4)
当idp与user建立起联系后,idp向sp发送响应 <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol ...
- python验证码图片生成
环境:win10(64位)+pycharm2018+pillow5.4+python3.7 对Django的跨站请求保护的有所了解的同学会知道{%csrf_token%}在实际上作用并不是那么大,只要 ...
- FactoryBean简介以及Mybatis-Spring应用
一.BeanFactory和FactoryBean区别? BeanFactory是工厂类,提供了获取和检索Bean的接口.它代表着Spring的IoC容器,负责Bean实例化以及管理Bean之间的依赖 ...
- Vue项目发布的问题--http://localhost:8088/static/fonts/fontawesome-webfont.af7ae50.woff2
问题:ngnix将8080转成80对外访问,找不对woff2等文件 一\ 搭建环境 ngnix-->conf中 server { listen 80; server_name 10.9.240. ...
- LinkedHashMap 的实现原理
LinkedHashMap 概述 HashMap 是无序的,HashMap 在 put 的时候是根据 key 的 hashcode 进行 hash 然后放入对应的地方.所以在按照一定顺序 put 进 ...
- npm命令,nrm命令,n命令, nvm命令
npm命令 npm/yarn config set registry https://registry.npm.taobao.org 设置淘宝镜像npm/yarn config get registr ...
- Upload-labs 文件上传靶场通关攻略(上)
Upload-labs 文件上传靶场通关攻略(上) 文件上传是Web网页中常见的功能之一,通常情况下恶意的文件上传,会形成漏洞. 逻辑是这样的:用户通过上传点上传了恶意文件,通过服务器的校验后保存到指 ...
- Bugku-域名解析
做题之前了解一下域名解析,域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程.一个域名对应一个IP地址 ...
- Android达到什么水平才能顺利拿到 20k 无压力?
程序员分很多种类和等级,如果要提高达到20k的概率,有两个条件如果满足的话,则很容易达到: 1.一线城市:北上广深杭 2.互联网行业 如果你非得抬杠,我要在三线城市,做外包要赚20k的话,很难,我自己 ...
- GitHub标星8k,字节跳动高工熬夜半月整理的“组件化实战学习手册”,全是精髓!
前言 什么是组件化? 最初的目的是代码重用,功能相对单一或者独立.在整个系统的代码层次上位于最底层,被其他代码所依赖,所以说组件化是纵向分层. 为什么要使用组件化? 当我们的项目越做越大的时候,有时间 ...