Nginx02-nginx常用变量和配置项

nginx常用全局变量

$args
请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2

$content_length
HTTP请求信息里的"Content-Length"

$conten_type
HTTP请求信息里的"Content-Type"

$document_root
nginx虚拟主机配置文件中的root参数对应的值

$document_uri
当前请求中不包含指令的URI,如www.123.com/1.php?a=1&b=2的$document_uri就是1.php,不包含后面的参数

$host
主机头,也就是域名

$http_user_agent
客户端的详细信息,也就是浏览器的标识,用curl -A可以指定

$http_cookie
客户端的cookie信息

$limit_rate
如果nginx服务器使用limit_rate配置了显示网络速率,则会显示,如果没有设置, 则显示0

$remote_addr
客户端的公网ip

$remote_port
客户端的port

$remote_user
如果nginx有配置认证,该变量代表客户端认证的用户名

$request_body_file
做反向代理时发给后端服务器的本地资源的名称

$request_method
请求资源的方式,GET/PUT/DELETE等

$request_filename
当前请求的资源文件的路径名称,相当于是$document_root/$document_uri的组合

$request_uri
请求的链接,包括$document_uri和$args

$scheme
请求的协议,如ftp,http,https

$server_protocol
客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等

$server_addr
服务器IP地址

$server_name
服务器的主机名

$server_port
服务器的端口号

$uri
和$document_uri相同

$http_referer
客户端请求时的referer,通俗讲就是该请求是通过哪个链接跳过来的,用curl -e可以指定

一些其他配置项

tcp_nodelay on | off
在keeplived模式下的连接是否启用该选项,建立一次连接可以发送多个请求
当为off时,延迟发送,合并多个请求后再发送
当为on时,不延迟发送,来一个发一个
默认为on 可用于 http块 server块 location块

sendfile on | off
是否启用sendfile功能,在内核中封装报文直接发送,默认为off

server_tokens on | off | build | string
是否在响应报文的server首部显示nginx版本

try_files
示例1:访问images下的文件时,当找不到时,访问images/default.gif
location /images/ {
    try_files $uri /images/default.gif;
}

示例2:访问某文件,当找不到时,访问$uri/index.html,再找不到访问$uri.html,并返回404
location / {
    try_files $uri $uri/index.html $uri.html =404
}

安装常用选项

--prefix=/usr/local/nginx
指定 Nginx 安装的根目录

--sbin-path=/usr/sbin/nginx
指定 Nginx 可执行文件的路径

--conf-path=/etc/nginx/nginx.conf
指定 Nginx 主配置文件的路径

--pid-path=/var/run/nginx.pid
指定存放 Nginx 进程 ID 文件的路径

--lock-path=/var/lock/nginx.lock
指定 Nginx 锁文件的路径,用于进程锁定

--user=nginx
指定 Nginx 运行时使用的用户

--group=nginx
指定 Nginx 运行时使用的用户组

--with-pcre:
启用 PCRE 库的支持,这对于处理正则表达式非常有用。Nginx 使用 PCRE 来处理复杂的 URL 路由规则。

--http-log-path=/var/log/nginx/access.log
指定 HTTP 请求访问日志的路径

--error-log-path=/var/log/nginx/error.log
指定错误日志的路径

--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
指定客户端请求体临时文件的存储路径

--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
指定 HTTP 代理临时文件的存储路径

--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
指定 FastCGI 临时文件的存储路径

--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp
指定 uWSGI 临时文件的存储路径

--http-scgi-temp-path=/var/tmp/nginx/scgi_temp
指定 SCGI 临时文件的存储路径。在这里指定路径为 /var/tmp/nginx/scgi_temp

--with-http_ssl_module
启用 SSL 模块,用于处理 HTTPS 请求

--with-openssl=/root/workdir/packages/openssl-1.1.1o
指定 OpenSSL 库的路径,使用该目录下的 OpenSSL 源代码来编译 Nginx,用于启用 SSL 支持
同步:调用者等待被调用者返回消息,才能继续。被调用者不主动向调用者发送消息,需要调用者一直询问情况
异步:被调用者通过状态、通知或回调机制主动通知调用者被调用者的运行状态

阻塞:调用者向被调用者发送任务,当被调用者完全处理完请求时,调用者才能有后续动作,在此之前。调用者一直处于挂起状态,什么也不能做
非阻塞:调用者向被调用者发送任务,被调用者没有完成任务之前,调用者可以做其他事
posted @ 2024-05-11 15:37  立勋  阅读(1)  评论(0编辑  收藏  举报