Nginx的日志、全局变量、防盗链、https配置


文章目录

  • Nginx的日志、全局变量、防盗链、https配置
  • 日志
  • nginx全局变量含义
  • Nginx防盗链
  • 开启HTTPS


日志

nginx日志分为两种,一种是access日志,一种是错误日志

access.log

如何配置nginx的日志字段 nginx日志变量_如何配置nginx的日志字段


这里的main是指调用name为main的变量,name可以自定义

如何配置nginx的日志字段 nginx日志变量_全局变量_02

这里的全局变量指日志内容,访问日志的全局变量可自定义,错误日志不可以自定义内容!

192.168.16.21 - - [31/Jul/2021:19:38:40 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"
192.168.16.21 - - [31/Jul/2021:19:38:42 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"

nginx全局变量含义

名称        版本        说明(变量列表来源于文件 ngx_http_variables )

$args        1.0.8        请求中的参数;

$binary_remote_addr        1.0.8        远程地址的二进制表示

$body_bytes_sent        1.0.8        已发送的消息体字节数

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

$content_type        1.0.8        请求信息里的"Content-Type";

$document_root        1.0.8        针对当前请求的根路径设置值;

$document_uri        1.0.8        与$uri相同; 比如 /test1/test2/test.php

$host        1.0.8        请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;

$hostname        1.0.8       

$http_cookie        1.0.8        cookie 信息

$http_post        1.0.8       

$http_referer        1.0.8        引用地址

$http_user_agent        1.0.8        客户端代理信息

$http_via        1.0.8        最后一个访问服务器的Ip地址。

$http_x_forwarded_for        1.0.8        相当于网络访问路径。

$is_args        1.0.8       

$limit_rate        1.0.8        对连接速率的限制;

$nginx_version        1.0.8       

$pid        1.0.8       

$query_string        1.0.8        与$args相同;

$realpath_root        1.0.8       

$remote_addr        1.0.8        客户端地址;

$remote_port        1.0.8        客户端端口号;

$remote_user        1.0.8        客户端用户名,认证用;

$request        1.0.8        用户请求

$request_body        1.0.8       

$request_body_file        1.0.8        发往后端的本地文件名称

$request_completion        1.0.8       

$request_filename        1.0.8        当前请求的文件路径名,比如$request_filename:D:\nginx/html/test1/test2/test.php

$request_method        1.0.8        请求的方法,比如"GET"、"POST"等;

$request_uri        1.0.8        请求的URI,带参数; 比如http://localhost:88/test1/test2/test.php

$scheme        1.0.8        所用的协议,比如http或者是https,比如rewrite^(.+)$$scheme://example.com$1redirect;

$sent_http_cache_control        1.0.8       

$sent_http_connection        1.0.8       

$sent_http_content_length        1.0.8       

$sent_http_content_type        1.0.8       

$sent_http_keep_alive        1.0.8        

$sent_http_last_modified        1.0.8       

$sent_http_location        1.0.8       

$sent_http_transfer_encoding        1.0.8       

$server_addr        1.0.8        服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费);

$server_name        1.0.8        请求到达的服务器名;

$server_port        1.0.8        请求到达的服务器端口号;

$server_protocol        1.0.8        请求的协议版本,"HTTP/1.0"或"HTTP/1.1";

$uri        1.0.8        请求的URI,可能和最初的值有不同,比如经过重定向之类的。

Nginx防盗链

含义:防止自己的页面被爬虫爬去或复制

有一说一,实验做崩了,但是奇怪的知识增加了,学会了权限控制

补充:试验成功了

如何配置nginx的日志字段 nginx日志变量_服务器_03


当referer不是限定的ip时,返回404

如何配置nginx的日志字段 nginx日志变量_全局变量_04

如何配置nginx的日志字段 nginx日志变量_nginx_05

上面是防盗链的代码,下面是权限控制的代码

防盗链测试失败,权限控制测试成功,会报403错误,(403:权限问题)

如何配置nginx的日志字段 nginx日志变量_服务器_06

开启HTTPS

开启https很简单
生成私钥

openssl genrsa > cert.key

生成证书

openssl req -new -x509 -key cert.key > cert.pem

取消nginx https注释

完成!

complete!