部署
yum install nginx
启动
systemctl start/stop/restart nginx
systemctl status nginx
修改配置
vim /etc/nginx/nginx.conf
listen 8080 default_server;
listen [::]:8080 default_server;
nginx -t
nginx -s reload
配置详解
... // 全局块
events { // events块
...
}
http // http块
{
... // http全局块
server // server块
{
... // server全局块
location [PATTERN] // location块
{
...
}
location [PATTERN]
{
...
}
}
server
{
...
}
... // http全局块
}
- 全局块:配置影响
nginx
全局的指令。一般有运行nginx
服务器的用户组,nginx
进程pid
存放路径,日志存放路径,配置文件引入,允许生成worker process
数等。
events
块:配置影响nginx
服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http
块:可以嵌套多个server
,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type
定义,日志自定义,是否使用sendfile
传输文件,连接超时时间,单连接请求数等。
server
块:配置虚拟主机的相关参数,一个http
中可以有多个server
。
location
块:配置请求的路由,以及各种页面的处理情况。
nginx变量使用
set $变量名 变量值
$变量名
预定义变量
常用变量
变量 |
作用 |
arg_参数名 |
URL中某个具体参数的值 |
query_string |
与args变量完全相同 |
args |
全部URL参数 |
is_args |
如果请求的URL中有参数则返回?否则返回空 |
content_length |
HTTP 请求中标识包体长度的Content-Length头部的值,头部没有这个则为空 |
content_type |
标识请求包体类型的Content-Type 头部的值 |
uri |
请求的URI(不包含,不包含?后的参数) |
document_uri |
与uri完全相同 |
request_uri |
请求的URL(包含?后的参数) |
scheme |
协议名 HTTP 或者 HTTPS |
request_method |
请求的方法GET 或者 POST |
request_length |
所有请求内容的大小,包括请求行,头部,包体等 |
remote_user |
有HTTP Basic Authentication 协议传入的用户名 |
request |
原始的url请求,含有方法和协议版本 |
cookie_COOKIE |
cookie COOKIE的值 |
http_HEADER |
HTTP请求头中的内容,HEADER为HTTP请求中的内容转为小写,-变为_(破折号变为下划线),例如:$http_user_agent(Uaer-Agent的值) |
sent_http_HEADER |
HTTP响应头中的内容,HEADER为HTTP响应中的内容转为小写,-变为_(破折号变为下划线),例如: $sent_http_cache_control, $sent_http_content_type…; |
TCP相关的变量
变量 |
作用 |
binary_remote_addr |
客户端地质的整型格式,对于IPv4是4字节 |
remote_addr |
客户端地址 |
remote_port |
客户端端口 |
connection |
递增的连接序号 |
connection_requests |
当前连接上执行过的请求数,对keepalive 有意义 |
proxy_protocol_addr |
若使用了proxy_protocol 协议则返回协议中的地址 |
proxy_protocol_port |
若使用了proxy_protocol 协议则返回协议中的端口 |
server_addr |
服务器端地址(本端地址) |
server_port |
服务器端端口 |
TCP_INFO |
tcp内核层参数($tcpinfo_rtt,$tcpinfo_rttvar,$tcpinfo_snd_cwnd,$tcpinfo_rcv_space) |
server_protocol |
服务端协议,例如 HTTP |
Nginx处理请求过程中产生的变量
变量 |
作用 |
request_time |
请求处理到现在的耗时 |
server_name |
匹配上的请求server_name |
request_completion |
若请求处理完则返回OK,否则为空 |
request_id |
以16禁止输出的请求标识id,随即生成 |
Nginx系统变量
变量 |
作用 |
time_local |
以本地时间的标准输出 |
pid |
所属worker进程的id |
hostname |
与系统上输出hostname 一致 |