nginx(2)配置

配置:

配置的组成部分:

主配置文件:nginx.conf

include conf.d/*.conf

fastcgi、uwsgi、SCGI等相关的配置文件

mime.types:支持的mime类型

主配置文件的配置指令:

directive value1 [value2 ...];

注意:

(1) 指令必须以分号结尾;

(2) 支持使用配置变量 :

由模块引入:内建变量;

由用户引用:自定义变量;

set variable_name value;

引用变量:$variable_name

主配置文件结构:

main block:主配置段;全局配置段;

event {

...

} 事件驱动相关的配置;

http {

...

} http/https等 相关的配置段;

mail {

...

}

http配置的结构:

http {

...

...

server {

...

server_name

root

alias

location {

...

}

...

}

server {

...

}

}

*****************************************************

main block常见的配置指令:

分类:

正常运行必备的配置;

优化性能相关的配置;

用于调试及定位问题相关的配置;

正常运行必备的配置:

1、user USERNAME [GROUPNAME];

指定用于运行worker进程的用户和组;不指定则使用nobody

2、pid  /PATH/TO/PID_FILE;

指定nginx进程的pid文件路径;

3、worker_rlimit_nofile_number #;

单个worker进程所能够打开 的最大文件数量;

性能优化相关的配置:

1、worker_processes number|auto;

worker进程的数量;通常应该为cpu核心数量;

2、worker_cpu_affinity cpumask ...;

worker_cpu_affinity auto [cpumask];  cpu亲和力

CPUMASK:

0000 0001

0000 0010

3、worker_priority nice;

[-20,19]

调试、定位问题:

1、daemon on|off;

是否以守护进程方式运行nginx进程;

2、mastet_process on|off;

是否以master/worker模型启动nignx进程;

3、error_log file [level];

错误日志文件位置及其级别;

4、thread_pool name threads=number [max_queue=number];   默认只有32

线程池中的线程数量,及后援队列的长度;

*********************************************************

Events配置段:

Events {

1、worker_connections number;

每个worker进程所能够并发打开的最大连接数;

worker_processes * worker_connections

2、use method;

指明并发连接请求处理时使用的方法;

use  epoll;

3、accept_mutex on | off;

启用时,表示用于让多个worker轮流地、序列化地响应新请求;

4、keepalive_timeout 60

#keepalive超时时间。 这里指的是http层面的keep-alive 并非tcp的keepalive  如果想了解详情 请戳这里 http://www.bubuko.com/infodetail-260176.html

5、open_file_cache max=2000 inactive=60s;

为打开文件指定缓存,默认是没有启用的,max指定缓存最大数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存 打开文件最大数量为我们再main配置的worker_rlimit_nofile参数

}

******************************************

http配置段

http {

...

}

定义套接字相关功能

1、server { ... }

配置一个虚拟主机;

server {

listen PORT;

server_name  HOSTNAME;

root /PATH/TO/DOCUMENTROOT;

...

}

注意:

(1) 基于port的虚拟主机:

listen指令要使用不同的端口;

(2) 基于Hostname的虚拟主机;

server_name指令指向不同的主机名;

(3) 基于ip的虚拟主机:

listen IP:PORT;

2、listen address[:port] [default_server] [ssl] [backlog=number] [rcvbuf=size] [sndbuf=size];

listen port [default_server] [ssl];

listen unix:path [default_server] [ssl] ;

default_server:默认虚拟主机;

ssl:限制只能通过ssl连接提供服务;

backlog:后缓队列的长度;

rcvbuf:接收缓冲大小;

sndbuf:发送缓冲区大小;

3、server_name name ...;

指明当前server的主机名;后可跟一个或空白字符分隔的多个主机;

支持使用*任意长度的任意字符;

支持~起始的正则表达式模式字符串;

应用策略:

(1) 首先精确匹配;

(2) 左则*通配符匹配;

(3) 右侧*通配符匹配;

(4) 正则表达式模式匹配;

server_name  www.magedu.com;

server_name *.magedu.com;

server_name  www.magedu.*;

server_name ~^.*\.magedu\..*$;

mail.magedu.com, www.magedu.com

4、tcp_nodelay  on|off;

对keepalived模式下的连接是否启用TCP_NODELAY选项;

5、sendfile on | off;

是否启用sendfile功能;

定义路径相关配置

6、root path;

设置web资源路径映射;用于指明用户请求的url所对应的本地文件系统上的文档所在目录路径;

可用上下文:http, server, location, if

7、location [ = | ~ | ~* | ^~ ] uri { ... }

location @name { ... }

根据用户请求的URI来匹配定义的location,匹配到时,此请求将被相应的location块中的指令所处理;

server {

...

location {

}

location {

...

}

}

=:URI精确匹配;

~:做正则表达式模式匹配,区分字符大小写;

~*:做正则表达式模式匹配,不区分字符大小写;

^~:对URI的左半部分做匹配检查,不区分字符大小写;

匹配优先级:=、^~、~/~*、不带符号;

8、alias path;

定义路径别名,文档映射的一种机制;仅能用于location上下文;

alias  /bbs/  /web/forum/

http://www.magedu.com/bbs/a.jpg

location  /bbs/  {

alias  /web/forum/;

}

/web/forum/a.jpg

location  /bbs/  {

root  /web/forum/;

}

/web/forum/bbs/a.jpg

注意:

root指令:给定的路径对应于location中的/uri/左侧的/;

alias指令:给定的路径对应于location中的/uri/右侧的/;

9、index file ...;

可用位置:http, server, location

默认主面;

10、error_page code ... [=[response]] uri;

根据用户请求的资源的http响应的状态码实现错误页重定向;

http://www.magedu.com/hello.html --> 因为资源不存在而被改为对

http://www.magedu.com/404.html

时间: 2024-12-23 10:51:22

nginx(2)配置的相关文章

linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)

linux备份nginx.conf文件举例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在进程列表里 面找master进程,它的编号就是主进程号. ps -ef | grep nginx 查看进程 cat /usr/local/nginx/nginx.pid 每次修改完nginx文件都要重新加载配置文件linux命令: /usr/local/nginx -t //验证配置文件是否合法 若ngin

nginx安装配置

一.下载Nginx源文件 进入nginx官网下载nginx的稳定版本,我下载的是1.10.0. 下载:wget http://nginx.org/download/nginx-1.10.0.tar.gz 解压:tar -zxvf nginx-1.10.0.tar.gz 二.检查安装依赖项 执行下面的命令安装nginx的依赖库: yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel11 三.配置Nginx安

FastDFS的php和nginx模块配置

一.FastDFS和php整合 1.安装php # 安装依赖包 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel cu

Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持

前面有关于lnmp环境的搭建,在此就不在赘述.下面就简述thinkPHP如何在nginx下开启url_rewrite和pathinfo模式支持 主要有两个步骤: 一.更改php.ini将;cgi.fix_pathinfo=0  改为cgi.fix_pathinfo=1 二.更改nginx配置文件中php的location设置pathinfo模式: location ~ \.php { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index in

dva+antd写的一个react例子--服务器nginx 的配置

location ^~ /crm { rewrite ^/crm/(.*)(\.js|\.css|\.png|\.jpg|\.jpeg|\.gif|index\.php|robots\.txt)$ /$1$2 break; rewrite .* /index.html break; root /etc/nginx/static2/CIF_crm-frontend/dist/crm/; } 以上是nginx的配置 { "entry": "src/index.js",

Nginx安装配置(转)

Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. 在高连接并发的情况下,Nginx是Apache服务器不错的替代品. Nginx 安装 系统平台:CentOS release 6.6 (Final) 64位. 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtoo

Nginx + PHP 配置

最近在学习php的时候了解到了,顺便了解了一下php服务器的运行环境,php最常用的服务器肯定是Apache了,不过这几年Nginx发展也很快,相比Apache而言,它除了抗高并发以外,搭建环境的的时候配置也比较容易,在windows下几乎不需要任何安装步骤,只需要在控制台启动 .exe 程序就行了,而且反向代理机制也是一种比较灵活的机制. 1.在配置一个环境之前,我们先要下载php和nginx ,它们都可以在各自官网下载到,目前nginx最新稳定版是nginx 1.6,在下载php的时候要注意

nginx 转发配置

Nginx配置proxy_pass转发的/路径问题 在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/,当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走. location ^~ /static_js/ { proxy_cache js_cache; proxy_set_header Host js.test.com; proxy_pass http:

nginx常用配置系列-虚拟主机

本来准备详尽的出一份nginx配置讲解,但nginx功能配置繁多,平常使用中使用最多的一般有: 1. 虚拟主机配置 2. HTTPS配置 3. 静态资源处理 4. 反向代理 ================= 虚拟主机配置 ================= 先说虚拟主机配置,nginx的核心配置文件在nginx的安装目录下conf目录中(如果是CentOS通过yum安装则在/etc/nginx目录中) 在conf目录下创建vhost目录,方便管理虚拟主机的配置文件 mkdir vhost 以e

Keepalived && Nginx 高可用性配置

keepalived是一个用于做双机热备(HA)的软件,常和haproxy联合起来做热备+负载均衡,达到高可用. 运行原理 keepalived通过选举(看服务器设置的权重)挑选出一台热备服务器做MASTER机器,MASTER机器会被分配到一个指定的虚拟ip,外部程序可通过该ip访问这台服务器,如果这台服务器出现故障(断网,重启,或者本机器上的keepalived crash等),keepalived会从其他的备份机器上重选(还是看服务器设置的权重)一台机器做MASTER并分配同样的虚拟IP,充