[b]1.什么是Nginx[/b]
Nginx来自俄罗斯的Igor Sysoev在为Rambler Media(URL%7C@name
根据http响应状态码来指明特用的错误页面;
error_page 404 /404_customed.html
error_page 404 =200 /404_customed.html
[=code]:以指定的响应码进行响应,而不是默认的原来的响应,默认表示以新资源的状态码为其响应码
9.基于IP的访问控制
allow、deny IP/network
allow IP、网络
10.基于用户的访问控制
basic、digest
auth_basic "验证原因"
auth_basic_user_file /etc/nginx/users/.htpasswd;
用htpasswd -c (第一次创建) -m(使用MD5码) /etc/nginx/users/.htpasswd tom 创建用户账号和密码文件
11.SSL
listen 443 ssl
server_name [url=http://www.magedu.com/]www.magedu.com[/url]
ssl_certificate /etc/nginx/ssl/nginx.crt;(证书)
ssl_certificate_key /etc/nginx/ssl/nginx.key;(私钥)
12.stub_status {on | off};nginx状态统计页面
仅能用户location上下文。并且allow IP; deny all;
显示结果:
Active connections:6 -----> 当前所有处于打开状态的连接数
server 已接受的连接数
accepts 已处理过的连接数
handled 已处理的请求书,在保持连接模式下
requests
Reading 正在接收请求状态的连接数
Writing 请求已经接收完成,正处理请求或发送响应的过程中的连接数
Waiting 处于保持Keepalive连接模式,且处于活动状态的连接数。
13.rewrite URL重写
格式:rewrite regex replacement flag
rewrite ^/images/(.*\.jpg)$ /imgs/$1 break;
IP/images/a/b/c/1.jpg ---> IP/imgs/a/b/c/1.jpg
作用:域名切换、重定向
flag: last:此rewrite规则重写完成后,不再被后面其他rewrite规则处理,而由User Agent重新对重写后URL再一次发起请求,并从头开始执行类似的过程;
break:一旦此rewrite规则重写完成后,发起请求,且不会再被当前location内的任何rewrite规则检测
redirect:临时重定向,以302响应码返回新的URL。(域名可改变)
permanent:永久重定向,以301响应码返回的URL。
14.if上下文
语法:if(condition) {...}
应用场景:server、location
condition:
(1)变量名:变量值为空串,或者以“0”开始,则为false
(2)以变量为操作数构成的比较表达式(=,!=)
(3)正则表达式的模式匹配操作
~:区分大小写的模式匹配
~*:不区分大小写的模式匹配
!~和!~*:对上面两种测试取反
(4)测试路径是否为文件:-f、!-f
(5)测试指定路径是否为目录:-d、!-d
(6)测试文件的存在性:-e、!-e
(7)测试文件是否有执行权限:-x、!-x
例如:
if($http_user_agent ~* MSIE){
rewrite ^(.*)$ /msie/$1 break;
}
15.防盗链
location ~* \.(jpg | gif | jpeg | png)$ {
valid_referer none blocked www.magedu.com;
if ($invalid_referer) {
rewrite ^/ http://www.magedu.com/403.html
}
}
16.定制访问日志格式
log_format main "$remote_addr $remote_user [$time_local] $request"
access_log logs/access.log main;
此处可以使用nginx各模块内建变量;
17.网络连接相关的配置
1. keepalive_timeout #;长连接的超时时长
2.keepalive_requests #;在一个长连接上所能够允许请求的最大资源数
3.keepalive_disable [msie6 | safari | none];为指定类型的UserAgent禁用长连接
4.tcp_nodelay on|off;是否对长连接使用TCP_NODELAY选项;更优化用户体验就打开,否则,等待充足的量才返回
5.client_header_timeout #;读取http请求报文首部的超时时长
6.client_body_timeout #;读取http请求报文body部分的超时时长
7.send_timeout #;发送相应报文的超时时长
[b]总结[/b]
以上所述是小编给大家介绍的Nginx简介_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!