Nginx配置文件nginx.conf中文详解

合集下载

Nginx配置文件详解以及配置反向代理和支持跨域

Nginx配置文件详解以及配置反向代理和支持跨域

Nginx配置⽂件详解以及配置反向代理和⽀持跨域⼀、简介:Nginx是⼀款轻量级的web服务器,反向代理服务器,由于他的内存占⽤少,启动快,⾼并发能⼒强,在互联⽹项⽬中⼴泛应⽤。

⼆、Nginx的配置⽂件:如果Nginx是yum安装;配置⽂件默认位置在/etc/nginx/nginx.conf 如果是编译安装Nginx,具体配置⽂件路径根据你安装时指定放置的路径下1 user nginx;2 worker_processes auto; #⼯作进程:数⽬。

根据硬件调整,通常等于CPU数量或者2倍于CPU(auto⾃动根据服务器CPU数量进⾏调整)3 error_log /var/log/nginx/error.log; # 错误⽇志放置路径4 pid /run/nginx.pid; #进程PID存放路径56 include /usr/share/nginx/modules/*.conf;78 events {9 worker_connections 24400; #指定进程可以打开的最⼤描述符:数⽬。

这个指令是指当⼀个nginx进程打开的最多⽂件描述符数⽬,理论值应该是最多打开⽂件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与10 }1112 http {13 log_format main '$remote_addr - $remote_user [$time_local] "$request" '14'$status $body_bytes_sent "$http_referer" '15'"$http_user_agent" "$http_x_forwarded_for"';1617 access_log /var/log/nginx/access.log main;1819 sendfile on;20 tcp_nopush on;21 tcp_nodelay on; proxy_connect_timeout 90; proxy_read_timeout 180; proxy_send_timeout 180;22 keepalive_timeout 65;23 types_hash_max_size 2048;2425## nginx 安全相关配置26#关闭⽂件索引27 autoindex on;28#隐藏版本号29 server_tokens off;30#设置客户端请求头读取超时时间,超过这个时间还没有发送任何数据,Nginx将返回“Request time out(408)”错误31 client_header_timeout 150;32#设置客户端请求主体读取超时时间,超过这个时间还没有发送任何数据,Nginx将返回“Request time out(408)”错误33 client_body_timeout 150;34#上传⽂件⼤⼩限制35 client_max_body_size 100m;36#指定响应客户端的超时时间。

Nginx配置文件详解

Nginx配置文件详解

Nginx配置⽂件详解Nginx配置⽂件详解1、主配置⽂件⼤致结构:Nginx配置⽂件(/usr/local/nginx/conf/nginx.conf)[root@nginx-4 nginx]# vim /usr/local/nginx/conf/nginx.conf ## 主要结构如下图配置⽂件主要由四部分组成:main(全区设置),HTTP(设置负载均衡服务器组),server(虚拟主机配置),和location(URL匹配特定位置设置)。

访问⼀个web 页⾯,发起N个HTTP请求产⽣⼀次TCP连接,完成多个 HTTP 请求2、简易⽰例:user nginx nginx;worker_processes 1;events {worker_connections 1024;use epoll;}http{include mime.types;charset utf-8;keepalive_timeout 65;server {ServerName N1location{ }location{ }}server {ServerName N2location{ }location{ }}server {ServerName N3location{ }location{ }}}3、主配置⽂件解析:1)全局变量部分:#user nobody nobody; #Nginx的worker进程运⾏⽤户以及⽤户组worker_processes 1; #Nginx开启的进程数,建议设置为等于CPU总核⼼数。

#worker_processes auto; ## 多核⼼CPU设置。

## [root@server-21 ~]# cat /proc/cpuinfo 查看当前CPU 的信息。

#worker_processes 4 # 4核CPU#worker_cpu_affinity 0001 0010 0100 1000;#亲核##CPU亲核,设置⼯作进程与 CPU 绑定。

Nginx的configure各项中文说明 -电脑资料.

Nginx的configure各项中文说明 -电脑资料.

Nginx的configure各项中文说明 -电脑资料2019-01-01�Cprefix= �C Nginx安装路径,。

如果没有指定,默认为 /usr/local/nginx。

�Csbin-path= �C Nginx可执行文件安装路径。

只能安装时指定,如果没有指定,默认为 /sbin/nginx。

�Cconf-path= �C 在没有给定-c选项下默认的nginx.conf的路径。

如果没有指定,默认为 /conf/nginx.conf。

�Cpid-path= �C 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。

如果没有指定,默认为 /logs/nginx.pid。

�Clock-path= �C nginx.lock文件的路径。

�Cerror-log-path= �C 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。

如果没有指定,默认为 /logs/error.log。

�Chttp-log-path= �C 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。

如果没有指定,默认为 /logs/access.log。

�Cuser= �C 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。

如果没有指定,默认为 nobody。

�Cgroup= �C 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。

如果没有指定,默认为 nobody。

�Cbuilddir=DIR �C 指定编译的目录�Cwith-rtsig_module �C 启用 rtsig 模块�Cwith-select_module �Cwithout-select_module �C 允许或不允许开启SELECT模式,如果 configure 没有找到更合适的模式,比如:kqueue(sun os),epoll (linux kenel 2.6+), rtsig(实时信号)或者/dev/poll(一种类似select的模式,底层实现与SELECT基本相同,都是采用轮训方法) SELECT模式将是默认安装模式�Cwith-poll_module �Cwithout-poll_module �C Whether or not to enable the poll module. This module is enabled by default if amore suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure.�Cwith-http_ssl_module �C 开启HTTP SSL模块,使NGINX可以支持HTTPS请求。

Nginx配置和说明以及使用Nginx的好处

Nginx配置和说明以及使用Nginx的好处

nginx.conf配置文件一般在:/usr/local/nginx/conf 下
在nginx.conf配置文件中
步骤1:要配置访问的路径
server{
listen 8088;//这个是端口号(通过Nginx的端口)
server_name 192.168.33.128;//这个是ip(通过Nginx访问的ip)
}
步骤2:拦截资源(jsp|do|json|css|html|css|js)
location ~ \.(jsp|do|json|css|html|css|js)${ //这个是拦截资源
proxy_pass http://localtomcat; //这是跳转的localtomcat名字
}
步骤3:分配请求到不同的服务器中
upstream localtomcat{ //localtomcat就是步骤2中跳转名字
server localhost:8080; //这是分配资源的第一个tomcat服务器
server localhost:8081; //这是分配资源的第二个
tomcat服务器
}
当然这个服务器地址可以配置多个,对应多个tomcat,也可以配置在不同的虚拟机下的tomcat
说下使用负载均衡的好处:
1,可以把静态资源放在Nginx下实现共享(或者专门使用一个服务器)
2,动态请求,可以分配到各个服务器上,实现分摊处理请求,不至于系统奔溃,就算奔溃一个,还有其他的服务器
启动Nginx需要进入到/usr/local/nginx/sbin 目录下输入 ./nginx
关闭输入 pkill -9 nginx。

nginx配置文件nginx.conf简单介绍

nginx配置文件nginx.conf简单介绍

nginx配置⽂件nginx.conf简单介绍⼀、Nginx的配置⽂件结构Nginx的配置⽂件nginx.conf位于其安装⽬录的conf⽬录下,nginx.conf由多个块组成,最外⾯的块是main,main包含Events 和HTTP,HTTP包含upstream和多个Server,Server⼜包含多个location。

其中main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。

main块设置的指令将影响其他所有设置;server块的指令主要⽤于指定主机和端⼝;upstream指令主要⽤于负载均衡,设置⼀系列的后端服务器;location块⽤于匹配⽹页位置。

#user指定Nginx Worker进程运⾏⽤户以及⽤户组,默认由nobody账号运⾏。

#user nobody;#worker_processes指定了Nginx要开启的进程数。

每个Nginx进程平均耗费10M~12M内存。

建议指定和CPU的数量⼀致即可。

worker_processes 1;#error_log⽤来定义全局错误⽇志⽂件。

⽇志输出级别有debug、info、notice、warn、error、crit可供选择,#其中,debug输出⽇志最为最详细,⽽crit输出⽇志最少。

#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#⽤来指定进程pid的存储⽂件位置#pid logs/nginx.pid;#events:设定Nginx的⼯作模式及连接数上限:#use是个事件模块指令,⽤来指定Nginx的⼯作模式Nginx⽀持的⼯作模式有select、poll、kqueue、epoll、rtsig和/dev/poll;#epoll是多路复⽤IO(I/O Multiplexing)中的⼀种⽅式,但是仅⽤于linux2.6以上内核,可以⼤⼤提⾼nginx的性能#其中select和poll都是标准的⼯作模式,kqueue和epoll是⾼效的⼯作模式,不同的是epoll⽤在Linux平台上,⽽kqueue⽤在BSD#系统中。

Nginx 配置文件nginx.conf的完整配置说明

Nginx 配置文件nginx.conf的完整配置说明

#用户用户组user www www;#工作进程,根据硬件调整,有人说几核cpu,就配几个,我觉得可以多一点worker_processes 5;#错误日志error_log logs/error.log;#pid文件位置pid logs/nginx.pid;worker_rlimit_nofile 8192;events {#工作进程的最大连接数量,根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行worker_connections 4096;}http {include conf/mime.types;#反向代理配置,可以打开proxy.conf看看include /etc/nginx/proxy.conf;#fastcgi配置,可以打开fastcgi.conf看看include /etc/nginx/fastcgi.conf;default_type application/octet-stream;#日志的格式log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#访问日志access_log logs/access.log main;sendfile on;tcp_nopush on;#根据实际情况调整,如果server很多,就调大一点server_names_hash_bucket_size 128; # this seems to be required for some vhosts#这个例子是fastcgi的例子,如果用fastcgi就要仔细看server { # php/fastcgilisten 80;#域名,可以有多个server_name ;#访问日志,和上面的级别不一样,应该是下级的覆盖上级的access_log logs/domain1.access.log main;root html;location / {index index.html index.htm index.php;}#所有php后缀的,都通过fastcgi发送到1025端口上#上面include的fastcgi.conf在此应该是有作用,如果你不include,那么就把fastcgi.conf的配置项放在这个下面。

Nginx配置文件(nginx.conf)配置详解

Nginx配置文件(nginx.conf)配置详解

Nginx配置文件(nginx.conf)配置详解usernginxnginx ;Nginx用户及组:用户组。

window下不指定worker_processes 8;工作进程:数目。

根据硬件调整,通常等于CPU数量或者2倍于CPU。

error_log logs/error.log;error_log logs/error.log notice;error_log logs/error.log info;错误日志:存放路径。

pid logs/nginx.pid;pid(进程标识符):存放路径。

worker_rlimit_nofile 204800;指定进程可以打开的最大描述符:数目。

这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。

这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

events{useepoll;使用epoll的I/O 模型。

linux建议epoll,FreeBSD建议采用kqueue,window下不指定。

补充说明:与apache相类,nginx针对不同的操作系统,有不同的事件模型A)标准事件模型Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或pollB)高效事件模型Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X 系统使用kqueue可能会造成内核崩溃。

nginx的配置规则

nginx的配置规则

nginx的配置规则全文共四篇示例,供读者参考第一篇示例:Nginx是一款高性能的开源HTTP服务器和反向代理服务器,广泛用于构建动态网站及Web服务,并提供了许多功能和灵活的配置选项。

在配置Nginx时,需要遵循一定的规则,以确保服务器的安全性和性能。

一、基本配置规则1. 配置文件的结构:Nginx的配置文件通常位于/etc/nginx/nginx.conf,它包含了服务器的全局配置信息和站点配置信息。

2. 模块的使用:Nginx的功能是通过模块实现的,可以使用不同的模块来扩展功能,例如安全、负载均衡、缓存等。

3. server块的配置:每个虚拟主机需要在server块中配置,可以设置域名、端口、根目录等信息。

4. location块的配置:location用于匹配不同的URL请求,并指定该请求要如何处理,可以指定代理、静态文件等处理方式。

5. 日志的记录:可以配置Nginx记录访问日志和错误日志,以方便后续的分析和排查问题。

6. 反向代理配置:可以配置Nginx作为反向代理服务器,将请求转发到后端的应用服务器。

7. 负载均衡配置:可以配置Nginx实现负载均衡,将请求分发到不同的后端服务器,以提高性能和可靠性。

二、常用配置选项1. listen:指定Nginx监听的端口和IP地址。

2. server_name:指定虚拟主机的域名。

3. root:指定网站的根目录。

4. index:指定默认的首页文件。

5. location:用于匹配请求的URL,可以使用正则表达式。

6. proxy_pass:用于配置代理服务器。

7. try_files:用于尝试不同的文件,如果文件不存在则返回404错误。

8. error_page:用于配置错误页面。

9. include:用于包含其他配置文件。

10. ssl:用于配置SSL/TLS加密。

三、配置优化1. 合理的配置文件结构:合理的配置文件结构可以提高管理和维护的效率。

nginx配置详解

nginx配置详解

Nginx配置文件nginx.conf中文详解(总结)2012-12-16 14:56:38 我来说两句收藏我要投稿PS:Nginx使用有两三年了,现在经常碰到有新用户问一些很基本的问题,我也没时间一一回答,今天下午花了点时间,结合自己的使用经验,把Nginx的主要配置参数说明分享一下,也参考了一些网络的内容,这篇是目前最完整的Nginx配置参数中文说明了。

更详细的模块参数请参考:/Main#定义Nginx运行的用户和用户组user www www;#nginx进程数,建议设置为等于CPU总核心数。

worker_processes 8;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log ar/loginx/error.log info;#进程文件pid ar/runinx.pid;#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n 的值保持一致。

worker_rlimit_nofile 65535;#工作模式与连接数上限events{#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll 模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。

use epoll;#单个进程最大连接数(最大连接数=连接数*进程数)worker_connections 65535;}#设定http服务器http{include mime.types; #文件扩展名与文件类型映射表default_type application/octet-stream; #默认文件类型#charset utf-8; #默认编码server_names_hash_bucket_size 128; #服务器名字的hash表大小client_header_buffer_size 32k; #上传文件大小限制large_client_header_buffers 4 64k; #设定请求缓client_max_body_size 8m; #设定请求缓sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。

Nginx配置文件nginx.conf详解

Nginx配置文件nginx.conf详解

Nginx配置⽂件nginx.conf详解Nginx 总的配置⽂件位置 /usr/local/nginx/conf/nginx.confnginx 正则匹配⼀.正则表达式匹配,其中:1. ~ 为区分⼤⼩写匹配2. ~* 为不区分⼤⼩写匹配3. !~和!~*分别为区分⼤⼩写不匹配及不区分⼤⼩写不匹配⼆.⽂件及⽬录匹配,其中:1. -f和!-f⽤来判断是否存在⽂件2. -d和!-d⽤来判断是否存在⽬录3. -e和!-e⽤来判断是否存在⽂件或⽬录4. -x和!-x⽤来判断⽂件是否可执⾏三.rewrite指令的最后⼀项参数为flag标记,flag标记有:1. last 相当于apache⾥⾯的[L]标记,表⽰rewrite。

2. break本条规则匹配完成后,终⽌匹配,不再匹配后⾯的规则。

3. redirect 返回302临时重定向,浏览器地址会显⽰跳转后的URL地址。

4. permanent 返回301永久重定向,浏览器地址会显⽰跳转后的URL地址。

使⽤last和break实现URI重写,浏览器地址栏不变。

使⽤alias指令必须⽤last标记;使⽤proxy_pass指令时,需要使⽤break标记。

Last标记在本条rewrite规则执⾏完毕后,会对其所在server{......}标签重新发起请求break标记则在本条规则匹配完成后,终⽌匹配。

四.NginxRewrite 规则相关指令 1.break指令 使⽤环境:server,location,if; 该指令的作⽤是完成当前的规则集,不再处理rewrite指令。

2.if指令 使⽤环境:server,location 该指令⽤于检查⼀个条件是否符合,如果条件符合,则执⾏⼤括号内的语句。

If指令不⽀持嵌套,不⽀持多个条件&&和||处理。

3.return指令 语法:return code ; 使⽤环境:server,location,if; 该指令⽤于结束规则的执⾏并返回状态码给客户端。

nginx.conf配置解析之server配置

nginx.conf配置解析之server配置

nginx.conf配置解析之server配置server{} 包含在http{}内部,每⼀个server{}都是⼀个虚拟主机(站点)以下为nginx.conf配置⽂件中server{ }部分的内容。

server {listen 80; //监听端⼝为80,可以⾃定义其他端⼝,也可以加上IP地址,如,listen 127.0.0.1:8080;server_name localhost; //定义⽹站域名,可以写多个,⽤空格分隔。

#charset koi8-r; //定义⽹站的字符集,⼀般不设置,⽽是在⽹页代码中设置。

#access_log logs/host.access.log main; //定义访问⽇志,可以针对每⼀个server(即每⼀个站点)设置它们⾃⼰的访问⽇志。

##在server{}⾥有很多location配置段location / {root html; //定义⽹站根⽬录,⽬录可以是相对路径也可以是绝对路径。

index index.html index.htm; //定义站点的默认页。

}#error_page 404 /404.html; //定义404页⾯# redirect server error pages to the static page /50x.html#error_page 500502503504 /50x.html; //当状态码为500、502、503、504时,则访问50x.htmllocation = /50x.html {root html; //定义50x.html所在路径}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##定义访问php脚本时,将会执⾏本location{}部分指令#location ~ \.php$ {# proxy_pass http://127.0.0.1; //proxy_pass后⾯指定要访问的url链接,⽤proxy_pass实现代理。

Nginx主配置文件nginx.conf史上超细中文详解

Nginx主配置文件nginx.conf史上超细中文详解

Nginx主配置文件nginx.conf史上超细中文详解Nginx主配置文件nginx.conf史上最细中文详解 (1)第1章作者简介 (1)第2章 nginx配置解释图解 (1)第3章 Nginx核心配置文件nginx.conf史上最细中文详解 (2)3.1 定义Nginx运行的用户和用户组 (2)3.2 nginxworker进程数,即处理请求的进程(熟称负责接客的服务员) (2)3.3 cpu亲和力配置,让不同的进程使用不同的cpu. 23.4 全局错误日志定义类型,[ debug|info|notice|warn|error|crit]23.5 把进程号记录到文件 (2)3.6 Nginx worker最大打开文件数,可设置为系统优化后的ulimit -HSn的结果 (2)3.7 IO事件模型与worker进程连接数设置 (3)3.8 http模块设置部分 (3)3.9 设定基于域名的虚拟主机部分 (5)3.10 反向代理负载均衡配置(代理服务) (6)3.11 设定查看Nginx状态的地址 (7)3.12 设定java程序动静分离反向代理负载均衡配置 (7)第1章作者简介老男孩,北京老男孩IT教育创始人,畅销图书作者,51CTO金牌讲师,16年运维经验及培训经验, IT界顶级Linux集群架构实战与教育专家。

国内IT教育实战心理学运维思想体系创始人,将心理学运维思想大量应用于教学培训实践,成就屌丝无数。

所教学生平均就业工资及后期发展速度连续多年在国内同行业排名第一!老男孩老师个人博客:/和第2章 nginx配置解释图解图1-1 理解nginx http协议相关参数图解图1-2 根据http原理及Fastcgi原理讲解fastcgi参数优化图解第3章 Nginx核心配置文件nginx.conf史上最细中文详解3.1 定义Nginx运行的用户和用户组user nginx nginx; #改为特殊的用户和组3.2 nginxworker进程数,即处理请求的进程(熟称负责接客的服务员)worker_processes 8; #初始可设置为CPU总核数3.3 cpu亲和力配置,让不同的进程使用不同的cpuworker_cpu_affinity 0001 0010 0100 1000 0001 00100100 1000;3.4 全局错误日志定义类型,[ debug|info|notice|warn|error|crit]error_log logs/error.log error; #一定要设置warn级别以上3.5 把进程号记录到文件pid logs/nginx.pid; #用于管理nginx进程3.6 Nginxworker最大打开文件数,可设置为系统优化后的ulimit -HSn的结果worker_rlimit_nofile 65535;3.7 IO事件模型与worker进程连接数设置events{#epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型use epoll;#单个worker进程最大连接数worker_connections 10240; #nginx最大连接数=worker连接数*worker进程数}3.8 http模块设置部分http{server_tokens off; #隐藏响应header和错误通知中的版本号include mime.types; #文件扩展名与文件类型映射表default_type application/octet-stream;#默认文件类型server_names_hash_max_size 512; #服务域名的最大hash表大小server_names_hash_bucket_size 128;#服务域名的hash表大小#开启高效文件传输模式,实现内核零拷贝sendfile on;#激活tcp_nopush参数可以允许把httpresponse header和文件的开始放在一个文件里发布,积极的作用是减少网络报文段的数量tcp_nopush on;#激活tcp_nodelay,内核会等待将更多的字节组成一个数据包,从而提高I/O性能tcp_nodelay on;#连接超时时间,单位是秒keepalive_timeout 120;#目录列表访问参数,合适http下载,默认关闭。

Nginx的nginx.conf配置文件中文注释说明

Nginx的nginx.conf配置文件中文注释说明

Nginx的nginx.conf配置⽂件中⽂注释说明复制代码代码如下:#运⾏⽤户user www-data;#启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误⽇志及PID⽂件error_log /var/log/nginx/error.log;pid /var/run/nginx.pid;#⼯作模式及连接数上限events {use epoll; #epoll是多路复⽤IO(I/O Multiplexing)中的⼀种⽅式,但是仅⽤于linux2.6以上内核,可以⼤⼤提⾼nginx的性能worker_connections 1024;#单个后台worker process进程的最⼤并发链接数# multi_accept on;}#设定http服务器,利⽤它的反向代理功能提供负载均衡⽀持http {#设定mime类型,类型由mime.type⽂件定义include /etc/nginx/mime.types;default_type application/octet-stream;#设定⽇志格式access_log /var/log/nginx/access.log;#sendfile 指令指定 nginx 是否调⽤ sendfile 函数(zero copy ⽅式)来输出⽂件,对于普通应⽤,#必须设为 on,如果⽤来进⾏下载等应⽤磁盘IO重负载应⽤,可设置为 off,以平衡磁盘与⽹络I/O处理速度,降低系统的uptime.sendfile on;#tcp_nopush on;#连接超时时间#keepalive_timeout 0;keepalive_timeout 65;tcp_nodelay on;#开启gzip压缩gzip on;gzip_disable "MSIE [1-6]\.(?!.*SV1)";#设定请求缓冲client_header_buffer_size 1k;large_client_header_buffers 4 4k;include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;#设定负载均衡的服务器列表upstream mysvr {#weigth参数表⽰权值,权值越⾼被分配到的⼏率越⼤#本机上的Squid开启3128端⼝server 192.168.8.1:3128 weight=5;server 192.168.8.2:80 weight=1;server 192.168.8.3:80 weight=6;}server {#侦听80端⼝listen 80;#定义使⽤访问server_name ;#设定本虚拟主机的访问⽇志access_log logs/.access.log main;#默认请求location / {root /root; #定义服务器的默认⽹站根⽬录位置index index.php index.html index.htm; #定义⾸页索引⽂件的名称fastcgi_pass ;fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;include /etc/nginx/fastcgi_params;}# 定义错误提⽰页⾯error_page 500 502 503 504 /50x.html;location = /50x.html {root /root;}#静态⽂件,nginx⾃⼰处理location ~ ^/(images|javascript|js|css|flash|media|static)/ {root /var/www/virtual/htdocs;#过期30天,静态⽂件不怎么更新,过期可以设⼤⼀点,如果频繁更新,则可以设置得⼩⼀点。

nginx配置文件nginx.conf超详细讲解

nginx配置文件nginx.conf超详细讲解

nginx配置⽂件nginx.conf超详细讲解#nginx进程,⼀般设置为和cpu核数⼀样worker_processes 4;#错误⽇志存放⽬录error_log /data1/logs/error.log crit;#运⾏⽤户,默认即是nginx,可不设置user nginx#进程pid存放位置pid /application/nginx/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.#最⼤⽂件打开数(连接),可设置为系统优化后的ulimit -HSn的结果worker_rlimit_nofile 51200;cpu亲和⼒配置,让不同的进程使⽤不同的cpuworker_cpu_affinity 0001 0010 0100 1000 0001 00100100 1000;#⼯作模式及连接数上限events{use epoll; #epoll是多路复⽤IO(I/O Multiplexing)中的⼀种⽅式,但是仅⽤于linux2.6以上内核,可以⼤⼤提⾼nginx的性能worker_connections 1024; #;单个后台worker process进程的最⼤并发链接数}###################################################http{include mime.types; #⽂件扩展名与类型映射表default_type application/octet-stream; #默认⽂件类型#limit模块,可防范⼀定量的DDOS攻击#⽤来存储session会话的状态,如下是为session分配⼀个名为one的10M的内存存储区,限制了每秒只接受⼀个ip的⼀次请求 1r/slimit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;limit_conn_zone $binary_remote_addr zone=addr:10m;include mime.types;default_type application/octet-stream;#第三⽅模块lua防⽕墙lua_need_request_body on;#lua_shared_dict limit 50m;lua_package_path "/application/nginx/conf/waf/?.lua";init_by_lua_file "/application/nginx/conf/waf/init.lua";access_by_lua_file "/application/nginx/conf/waf/access.lua";#设定请求缓存server_names_hash_bucket_size 128;client_header_buffer_size 512k;large_client_header_buffers 4 512k;client_max_body_size 100m;#隐藏响应header和错误通知中的版本号server_tokens off;#开启⾼效传输模式sendfile on;-------------------------------------------------------------------------------------------------#激活tcp_nopush参数可以允许把httpresponse header和⽂件的开始放在⼀个⽂件⾥发布,积极的作⽤是减少⽹络报⽂段的数量tcp_nopush on;#激活tcp_nodelay,内核会等待将更多的字节组成⼀个数据包,从⽽提⾼I/O性能tcp_nodelay on;tcp_nopush官⽅:tcp_nopushSyntax: tcp_nopush on | offDefault: offContext: httpserverlocationReference: tcp_nopushThis directive permits or forbids the use of thesocket options TCP_NOPUSH on FreeBSD or TCP_CORK on Linux. This option is onlyavailable when using sendfile.Setting this option causes nginx to attempt to sendit’s HTTP response headers in one packet on Linux and FreeBSD 4.xYou can read more about the TCP_NOPUSH and TCP_CORKsocket options here.linux 下是tcp_cork,上⾯的意思就是说,当使⽤sendfile函数时,tcp_nopush才起作⽤,它和指令tcp_nodelay是互斥的。

一个完整配置例nginx.conf(生产环境中使用)

一个完整配置例nginx.conf(生产环境中使用)

⼀个完整配置例nginx.conf(⽣产环境中使⽤)⼀个完整的nginx配置案例,⽣产环境1. ⼀个完整配置例(⽣产环境中使⽤)2.3. user nobody nobody;4. worker_processes 4;5. worker_rlimit_nofile 51200;6.7. error_log logs/error.log notice;8.9. pid /var/run/nginx.pid;10.11. events {12. use epoll;13. worker_connections 51200;14. }15.16. http {17. server_tokens off;18. include mime.types;19.20. proxy_redirect off;21. proxy_set_header Host $host;22. proxy_set_header X-Real-IP $remote_addr;23. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;24. client_max_body_size 20m;25. client_body_buffer_size 256k;26. proxy_connect_timeout 90;27. proxy_send_timeout 90;28. proxy_read_timeout 90;29. proxy_buffer_size 128k;30. proxy_buffers 4 64k;31. proxy_busy_buffers_size 128k;32. proxy_temp_file_write_size 128k;33.34. default_type application/octet-stream;35. charset utf-8;36.37. client_body_temp_path /var/tmp/client_body_temp 1 2;38. proxy_temp_path /var/tmp/proxy_temp 1 2;39. fastcgi_temp_path /var/tmp/fastcgi_temp 1 2;40. uwsgi_temp_path /var/tmp/uwsgi_temp 1 2;41. scgi_temp_path /var/tmp/scgi_temp 1 2;42.43. ignore_invalid_headers on;44. server_names_hash_max_size 256;45. server_names_hash_bucket_size 64;46. client_header_buffer_size 8k;47. large_client_header_buffers 4 32k;48. connection_pool_size 256;49. request_pool_size 64k;50.51. output_buffers 2 128k;52. postpone_output 1460;53.54. client_header_timeout 1m;55. client_body_timeout 3m;56. send_timeout 3m;57.58.59. log_format main '$server_addr $remote_addr [$time_local] $msec+$connection '60. '"$request" $status $connection $request_time $body_bytes_sent "$http_referer" '61. '"$http_user_agent" "$http_x_forwarded_for"';62.63. open_log_file_cache max=1000 inactive=20s min_uses=1 valid=1m;64.65. access_log logs/access.log main;66. log_not_found on;67.68.69. sendfile on;70. tcp_nodelay on;71. tcp_nopush off;72.73. reset_timedout_connection on;74. keepalive_timeout 10 5;75. keepalive_requests 100;76.77.78. gzip on;79. gzip_http_version 1.1;80. gzip_vary on;81. gzip_proxied any;82. gzip_min_length 1024;83. gzip_comp_level 6;84. gzip_buffers 16 8k;85. gzip_proxied expired no-cache no-store private auth no_last_modified no_etag;86. gzip_types text/plain application/x-javascript text/css application/xml application/json;87. gzip_disable "MSIE [1-6]\.(?!.*SV1)";88.89.90. upstream tomcat8080 {91. ip_hash;92.93. server 172.16.100.103:8080 weight=1 max_fails=2;94. server 172.16.100.104:8080 weight=1 max_fails=2;95. server 172.16.100.105:8080 weight=1 max_fails=2;96. }97.98. server {99. listen 80;100. server_name ;101. # config_apps_begin102. root /data/webapps/htdocs;103. access_log /var/logs/webapp.access.log main;104. error_log /var/logs/webapp.error.log notice;105.106. location / {107.108. location ~* ^.*/favicon.ico$ {109. root /data/webapps;110. expires 180d;111. break;112. }113.114. if ( !-f $request_filename ) {115. proxy_pass http://tomcat8080;116. break;117. }118. }119.120. error_page 500 502 503 504 /50x.html;121. location = /50x.html {122. root html;123. }124. }125.126. server {127. listen 8088;128. server_name nginx_status;129.130. location / {131. access_log off;132. deny all;133. return 503;134. }135.136. location /status {137. stub_status on;138. access_log off;139. allow 127.0.0.1;140. allow 172.16.100.71;141. deny all;142. }143. }144.145. }。

Nginx.conf配置详解

Nginx.conf配置详解
Nginx.conf 配置详解:
(1)全局配置项结构
#user nobody;
定义运行nginx服务的用户,还可以加上组,如 user nobody nobody;
worker_processes 1;
定义nginx子进程数量,即提供服务的进程数量,该数值建议和服务cpu核数保持一致。
除了可以定义数字外,还可以定义为auto,表示让系统自动调整。
#tcp_nopush on;
当tcp_nopush设置为on时,会调用tcp_cork方法进行数据传输。
使用该方法会产生这样的效果:当应用程序产生数据时,内核不会立马封装包,而是当数据量积累到一定量时才会封装,然后传输。这样有助于解决网络堵塞问题。
默认值为on。举例:快递员收快递、发快递,包裹累积到一定量才会发,节省运输成本。
keepalive_timeout 65 60;
该参数有两个值,第一个值设置nginx服务器与客户端会话结束后仍旧保持连接的最长时间,单位是秒,默认为75s。
第二个值可以省略,它是针对客户端的浏览器来设置的,可以通过curl -I看到header信息中有一项Keep-Alive: timeout=60,如果不设置就没有这一项。
index index.html index.htm; //定义站点的默认页。
}
#error_page 404 /404.html; //定义404页面
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; //当状态码为500、502、503、504时,则访问50x.html

Nginx主配置参数详解,Nginx配置网站

Nginx主配置参数详解,Nginx配置网站

Nginx主配置参数详解,Nginx配置⽹站1.Niginx主配置⽂件参数详解 a.上⾯博客说了在Linux中安装nginx。

博⽂地址为:/hanyinglong/p/5102141.html b.当Nginx安装完毕后,会有相应的安装⽬录,安装⽬录⾥的nginx.confg为nginx的主配置⽂件,nginx主配置⽂件分为4部分,main(全局配置)、server(主机配置)、upstream(负载均衡服务器设置)以及location(URL匹配特定位置的设置),这四者的关系是:server继承main,location继承server,upstream既不会继承其它设置也不会被继承。

c.Nginx是⼀个代理服务器,⼀般情况下,⽹站是不能部署在Nginx下的,⽐如⽤Java开发的JavaWeb程序,我们部署在tomcat下,然后使⽤Nginx代理将⽹址指向tomcat即可。

2.Nginx.conf配置⽂件详细说明(附备注)1# kencery 注释说明Nginx⽂件2# 时间:2016-1-193# 学习内容,只是来⾃互联⽹,有版权问题请联系我删除。

45######## Nginx的main(全局配置)⽂件6#指定nginx运⾏的⽤户及⽤户组,默认为nobody7#user nobody;89#开启的线程数,⼀般跟逻辑CPU核数⼀致10 worker_processes 1;1112#定位全局错误⽇志⽂件,级别以notice显⽰,还有debug,info,warn,error,crit模式,debug输出最多,crir输出最少,根据实际环境⽽定13#error_log logs/error.log;14#error_log logs/error.log notice;15#error_log logs/error.log info;1617#指定进程id的存储⽂件位置18#pid logs/nginx.pid;1920#指定⼀个nginx进程打开的最多⽂件描述符数⽬,受系统进程的最⼤打开⽂件数量限制21#worker_rlimit_nofile 655352223 events {24#设置⼯作模式为epoll,除此之外还有select,poll,kqueue,rtsig和/dev/poll模式25#use epoll;2627#定义每个进程的最⼤连接数,受系统进程的最⼤打开⽂件数量限制。

nginx配置文件概述

nginx配置文件概述

nginx配置文件概述本文档介绍的比较简单,主要就是罗列了一下nginx 的conf目录下的配置大家对这些文件都有一个整体的了解。

这个文档主要就是说说这些看似不起眼的文件都是干什么用的,他们之间是如何关联的,贴吧是如何使用的。

好,我们从nginx官方网站上下载一个源码包(版本号1.3.3),编译之后(m1-forum-optest00.vm机器),看看都有哪些默认的conf文件。

fastcgi.conffastcgi_paramskoi-utfkoi-winmime.typesnginx.confscgi_paramsuwsgi_paramswin-utf这里列举的文件并不完全,对于文件名字里带有default文件的我都没有展示,因为这些文件是默认配置,默认情况下和同名文件是一样的。

fastcgi.conf里面的参数是指定nginx跟fastcgi的工作方式,里面的参数一般都是默认的,不需要修改。

fastcgi_params文件是FastCGI进程的一个参数配置文件,在安装Nginx后,会默认生成一个这样的文件,pbui通过include指令将FastCGI参数配置文件包含了进来。

主要负责 nginx与php进行变量传递koi-utf, koi-win ,win-utf这三个文件主要是nginx的编码文件scgi_params ,uwsgi_params和之前的fastcgi,配置类似,都是定义了nginx 与 cgi的参数传递方式,因为nginx不支持对外部程序的直接调用或者解析,所有外部程序(比如php)必须通过fastcgi接口来调用。

mime.types 这个文件并不是nginx所独有的,一般的webserver都有这个或者类似的文件。

这个文件的作用是什么呢?其实他就是告诉你的浏览器,你要如何打开我服务器上的文件。

比如我服务器上有个文件是xxx.zip那么这个文件就是提供给你下载的,如果你浏览器调用flash插件去播放,那就不对了。

nginx.conf配置解析之文件结构

nginx.conf配置解析之文件结构

}
http{ #http块:代理缓存和日志定义绝大多数功能和第三方模块的配置可以放这
... #http全局块
server{ #server块:每个server相当于一台虚拟主机,它内部可以有多台主机联合提供服#server全局块
location /{ ...
}
#location:基于nginx服务器接收到的请求字符串,对除虚拟主机名之外的字符串进行匹配,对特定的请求进行处理
}
} ......
每个server相当于一台虚拟主机它内部可以有多台主机联合提供服务一起对外提供在逻辑上关系密切的一组服务
nginx.conf配 置 解 析 之 文 件 结 构
nginx.conf配置文件结构如下:
...... #主要定义nginx的全局配置
events{ #events(事件)块:主要配置网络连接相关

nginx的配置规则

nginx的配置规则

深入理解Nginx的配置规则在当今的互联网世界中,Nginx已经成为了一个不可或缺的角色。

作为一款高性能的HTTP和反向代理服务器,Nginx以其轻量级、高并发、稳定性和灵活性而广受赞誉。

然而,要充分发挥出Nginx的强大功能,就需要对它的配置规则有一个深入的理解。

本文将从基础概念出发,详细介绍Nginx的配置规则。

首先,我们需要理解的是Nginx的配置文件结构。

Nginx的配置文件通常位于/etc/nginx/nginx.conf,这个文件包含了全局配置、events块、http块等部分。

其中,全局配置部分定义了Nginx的基本运行参数,如工作进程数、错误日志路径等;events块用于设置网络连接相关的参数;http块则包含了与HTTP协议相关的所有配置,是Nginx配置的重点。

在http块中,我们可以看到一系列的server块,每个server块代表一个独立的虚拟主机。

每个server块内部又可以包含多个location块,用于处理特定的URL请求。

这种分层的配置结构使得Nginx的配置非常灵活,可以根据不同的需求来定制服务。

那么,具体来说,如何配置Nginx呢?以下是一些常见的配置示例:1. 设置监听端口:```listen 80;```这行代码表示Nginx将在80端口上监听HTTP请求。

2. 设置根目录:```root /usr/share/nginx/html;```这行代码指定了Nginx服务的根目录,所有的静态文件都将从这里提供。

3. 配置反向代理:```location / {proxy_pass localhost:8080;}```这行代码表示,当接收到任何以/开头的请求时,Nginx都会将请求转发到本地的8080端口。

4. URL重写:```location /images/ {rewrite ^/images/(.*)$ /img/$1 last;}```这行代码表示,当接收到/images/开头的请求时,Nginx会将URL中的/images/重写为/img/。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PS:Nginx使用有两三年了,现在经常碰到有新用户问一些很基本的问题,我也没时间一一回答,今天下午花了点时间,结合自己的使用经验,把Nginx的主要配置参数说明分享一下,也参考了一些网络的内容,这篇是目前最完整的Nginx 配置参数中文说明了。

更详细的模块参数请参考:/Main#定义Nginx运行的用户和用户组user www www;#nginx进程数,建议设置为等于CPU总核心数。

worker_processes 8;#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info;#进程文件pid /var/run/nginx.pid;#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。

worker_rlimit_nofile 65535;#工作模式与连接数上限events{#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll 模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。

use epoll;#单个进程最大连接数(最大连接数=连接数*进程数)worker_connections 65535;}#设定http服务器http{include mime.types; #文件扩展名与文件类型映射表default_type application/octet-stream; #默认文件类型#charset utf-8; #默认编码server_names_hash_bucket_size 128; #服务器名字的hash表大小client_header_buffer_size 32k; #上传文件大小限制large_client_header_buffers 4 64k; #设定请求缓client_max_body_size 8m; #设定请求缓sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。

注意:如果图片显示不正常把这个改成off。

autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。

tcp_nopush on; #防止网络阻塞tcp_nodelay on; #防止网络阻塞keepalive_timeout 120; #长连接超时时间,单位是秒#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。

下面参数看字面意思都能理解。

fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;#gzip模块设置gzip on; #开启gzip压缩输出gzip_min_length 1k; #最小压缩文件大小gzip_buffers 4 16k; #压缩缓冲区gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)gzip_comp_level 2; #压缩等级gzip_types text/plain application/x-javascript text/css application/xml;#压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。

gzip_vary on;#limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用upstream {#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。

weigth参数表示权值,权值越高被分配到的几率越大。

server 192.168.80.121:80 weight=3;server 192.168.80.122:80 weight=2;server 192.168.80.123:80 weight=3;}#虚拟主机的配置server{#监听端口listen 80;#域名可以有多个,用空格隔开server_name ;index index.html index.htm index.php;root /data/www/ha97;location ~ .*\.(php|php5)?${fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;}#图片缓存时间设置location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires 10d;}#JS和CSS缓存时间设置location ~ .*\.(js|css)?${expires 1h;}#日志格式设定log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';#定义本虚拟主机的访问日志access_log /var/log/nginx/ha97access.log access;#对 "/" 启用反向代理location / {proxy_pass http://127.0.0.1:88;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;#后端的Web服务器可以通过X-Forwarded-For获取用户真实IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#以下是一些反向代理的配置,可选。

proxy_set_header Host $host;client_max_body_size 10m; #允许客户端请求的最大单文件字节数client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 64k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传}#设定查看Nginx状态的地址location /NginxStatus {stub_status on;access_log on;auth_basic "NginxStatus";auth_basic_user_file conf/htpasswd;#htpasswd文件的内容可以用apache提供的htpasswd工具来产生。

}#本地动静分离反向代理配置#所有jsp的页面均交由tomcat或resin处理location ~ .(jsp|jspx|do)?$ {proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://127.0.0.1:8080;}#所有静态文件由nginx直接读取不经过tomcat或resinlocation~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf| xls|mp3|wma)${ expires 15d; }location ~ .*.(js|css)?${ expires 1h; }}}更详细的模块参数请参考:/Main。

相关文档
最新文档