目录:
文本:
一、nginx作为web服务器使用的配置。
1。http配置段:
语法:http{...}
默认值:—
上下文:main
Http{}:由ngx_http_core_module模块引入;
文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#http
2。服务器配置段:
语法:服务器{...}
默认:—
上下文:http
服务器{}:由ngx_http_core_module模块引入;
文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#server
3。位置配置段:
语法:location[=|~|~*|^~]uri{...}
位置@名称{...}
默认值:—
上下文:服务器,位置
位置{}:由ngx_http_core_module模块引入;
4。配置框架:
http { upstream { ... } server { location { root "/path/to/somedir"; ... } # 类似于httpd中的<Location>,用于定义URL与本地文件系统的映射关系; 一个server里面可以指定多个location; location URL { if ... { ... } } } # 每个server类似于httpd中的一个<VirtualHost>; server { ... } }注意:
http { ... include server.conf; //此处配置文件server.conf使用的是相对路径,是相对于根路径/usr/local/nginx而言的; }
3。配置说明:
1)服务器{};
角色:定义虚拟主机;
听听
角色:指定监听的地址和端口;
3)服务器名称名称[...];
角色:可以跟多个主机,名字也可以用正则表达式(~)或通配符:(~开头为)
匹配规则:
(1)先检查精确匹配;
(2)左通配符匹配检查:*.yangbin.com
(3)右通配符匹配检查:如mail。*
(4)正则表达式匹配检查:如~。*\.杨斌\。com$
(
示例:
4)根路径;
角色:设置资源路径映射,用于指示请求的URL对应的资源所在的文件系统上的起始路径;
投放范围越大,有效范围越小;
5)地点[=|||~*|]URI{...}
位置@名称{...}
功能:允许根据用户请求的URL匹配定义的位置,这个请求会被相应的位置分配。
匹配规则:
1)=:精确匹配检查;
2)~:正则表达式模式匹配检查,区分大小写;
3)~*:正则表达式模块匹配检查,不区分大小写;
4)~:URI匹配前半部分,不支持正则表达式;
匹配优先级:精确匹配(=)、~、~、~*、位置无任何标志;即先配普通的,再配正规的;
示例:
例如:
/Web/p_w_picpaths下有一个xx.png。访问时:http://10.68.7.223/p_w_picpaths/p_w_picpaths/xx.png,请注意与第一部分中的区分开来/。
如果有错误,检查相应的错误日志和访问日志;
6)别名路径;
角色:用于位置配置段,定义路径别名;
注意:
Root表示指示的路径是对应的位置“/”URL;
alias表示路径映射,即定位指令后定义的URL相对于alias所指示的路径;
一般来说,在location/中配置root,在location/other中配置alias是个好习惯。
示例:
7)索引文件;
功能:设置默认主页;
8)error_pagecode[...][=code]uri|@name
角色:根据http响应状态码指示具体错误页面;
[=code]:用指定的响应代码响应,而不是默认的原始响应,这意味着新资源的响应代码是默认的响应代码;
示例:在服务器段中配置
摘要:
fastcgi_intercept_errors
语法:fastcgi_intercept_errorson|off
默认值:fastcgi_intercept_errorsoff
使用字段:http,server,Location
该指令指定是否将4xx和5xx错误消息传递给客户端,或者允许nginx使用error_page来处理错误消息。
必须在error_page中显式指定处理方法,以使此参数有效。
9)基于IP的访问控制:
允许IP/网络;
拒绝IP/网络;
示例:
location /js/ { root /Web/www/; allow 10.68.7.0/24; deny all; }10)基于用户的访问控制
语法:auth_basicSTRING|off
默认值:auth_basicoff
配置段:http,server,location,limit_except
这意味着默认情况下不打开身份验证。如果跟随字符,这些字符将显示在d出窗口中。
语法:auth_basic_user_file"/path/to/password_file";
默认值:—
配置段:http,server,location,limit_except
您可以使用相对路径。建议使用htpasswd创建帐户密码文件;
htwd命令需要通过安装apachehttpd服务来获得。
示例:
[root@nginx nginx]# which htpasswd /usr/bin/htpasswd [root@nginx nginx]# htpasswd --help [root@nginx nginx]# id yangbin uid=1000(yangbin) gid=1000(yangbin) 组=1000(yangbin) [root@nginx nginx]# htpasswd -cm conf/htpasswd/.htpasswd yangbin New password: Re-type new password: Adding password for user yangbin [root@nginx nginx]# ll ./htpasswd/ -a 总用量 4 drwxr-xr-x. 2 root root 23 1月 12 16:07 . drwxr-xr-x. 13 root root 182 1月 12 16:06 .. -rw-r--r--. 1 root root 46 1月 12 16:07 .htpasswd [root@nginx nginx]# chown nginx:root ./htpasswd/.htpasswd [root@nginx nginx]# vim conf/server.conf ... location /p_w_picpaths/ { alias /Web/p_w_picpaths/; auth_basic INPUT_PASSWORD; auth_basic_user_file htpasswd/.htpasswd; } ... [root@nginx nginx]# ./sbin/nginx -s reload浏览器访问:
搞定了。
11)https服务
实现方法:生成私钥,生成证书签名请求,获取证书;
示例:
https的具体配置过程,我在lvs博客里写过,这里不再赘述。
12)stub_status{on|off}
context:仅用于位置上下文;
功能:主要用于查看Nginx的一些状态信息。
这个模块默认不会编译成Nginx。如果你想使用这个模块,你应该在编译和安装Nginx时指定:
示例:
检查安装的Nginx是否包含“stub_status”模块:
示例:
解释:
(1)活动连接:6#所有打开的连接的当前数量;
(2)服务器接受已处理的请求
(3)241241431
241已接受的连接数
241已处理的连接数
431已处理的请求数:在“保持连接”模式下,请求数
(4)读:0写:1等待:5
读:处于接收请求状态的连接数;Nginx向客户端读取的头信息个数,即连接数;
Writing:其请求已被接收并正在处理请求或发送响应的连接数;Nginx返回给客户端的头信息的数量。也就是给客户端的响应数据的数量;
waiting:保持连接模式并处于活动状态的连接数;当keep-alive开启时,该值等于active(读+写),表示Nginx已经完成处理,正在等待下一个请求指令的常驻连接。
13)重写regex替换标志;
角色:路由重写是Web服务器中一个非常重要的基本功能。通过路由重写,URL可以结构化,更有语义(有利于SEO)。另外,共享的URL可能会因为程序路由的改变而失效,路由的重写可以很好的解决这类问题。
regex:用于匹配URIs的正则表达式。使用括号“()”标记要拦截的内容。
使用环境:server,location,if
注意:此指令根据表达式重定向URIs或修改字符串。根据配置文件中的顺序执行指令。注意,重写表达式仅对相对路径有效;
示例:
Flags:
1)last:这个重写规则一旦被重写,就不会被其他重写规则处理,但是用户代理会重新发起对重写后的URL的请求,从头开始执行类似的过程;
2)break:一旦这个重写规则被重写,用户代理将重新发起对新URL的请求,并且不会被当前位置的任何重写规则检查;
3)重定向:返回一个带有302响应代码的新URL(临时重定向)。
4)永久:返回一个新的URL,带有301响应代码(永久重定向);
14)if
语法:if(condition){...}
应用环境:服务器,位置
条件:
(1)变量名:
变量false其他为真;
(2)以变量为 *** 作数的比较表达式;
您可以使用=,!=用于测试的相似比较运算符;
(3)正则表达式的模式匹配 *** 作:
~:区分大小写的模式匹配检查;
~*:不区分大小写的模式匹配检查;
!~还有!~*:否定以上两个测试;
(4)测试路径是文件的可能性:-f,!-f
(5)测试指定路径是目录的可能性:
(6)测试文件的存在性:-e,!-e
(7)检查文件是否有执行权限:-x,!-x
例如:
15)图片防盗链;
语法:valid_referersnone|blocked|server_names|string...;
默认值:—
配置段:服务器,位置
角色:指定合法来源'referrer',它决定内置变量$invalid_referrer的值。如果referrer头包含在这个合法的URL中,这个变量被设置为0,否则它被设置为1。此变量不区分大小写..
参数描述:
无:“Referer”源头被空
阻止:“Referer”源头不是空,但其值已被代理或防火墙删除。这些值都不是以http://或https://开头的。
server_names:"Referer"源头包含当前的server_names(当前域名)
任意字符串:定义服务器名或可选URI前缀的任何字符串。主机名可以以*开头或结尾,在检测源头的过程中,源域名中的主机端口会被忽略
正则表达式:正则表达式,~表示排除以https://或http://开头的字符串。
位置~*\。(jpg|gif|jpeg|png)${
16)自定义访问日志格式;
注意:这里可用的变量是nginx各个模块的内置变量;
二。与网络连接相关的配置:
1.keepalive_timeout时间;
长连接超时时间默认为75s2.
。keepalive_requestsN;
长连接上可以请求的最大资源数;
[br/]3。keepalive_disable[msie6|safari|none];
bit指定禁用长连接的用户代理的类型;
4。tcp_nodelayon|off
是否对长连接使用TCP_NODELAY选项;5.
。client_header_timeout
读取http请求消息头的超时时间;
6.客户端正文超时时间;
读取http请求消息正文部分的超时时间;7.
。send_超时时间;
发送响应消息的超时持续时间;
-第二部分完成了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)