先认识几个nignx内置变量:
$request_uri: 则是请求的整个字符串,包含了 后面的query_string的;
$remote_addr:则是发送下载请求的主机ip;
$body_bytes_sent :传送页面的字节数
认识几个nignx指令:
post_action :当主请求完成后,进行的请求。
internal:指令指定某个location只能被“内部的”请求调用,外部的调用请求会返回”Not found” (404)
“内部的”是指下列类型:
proxy_pass:转发请求
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 1024M;
sendfile on;
keepalive_timeout 1800;
gzip on;
upstream bdata {
server 192.168.0.115:8085;
}
server {
listen 80;
server_name 域名;
charset utf-8;
# 在请求该路径下的文件后, 执行after_apirelease, 请求你的服务端接口将本次数据记录
location ^~ /bdata/app/query/apirelease/ {
proxy_pass http://bdata;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 1800s;
post_action @after_apirelease;# 上面执行完后执行拦截
}
location @after_apirelease {
proxy_pass http://192.168.0.115:8085/bdata/app/contentcensusrelease/log?requestUrl=$request_uri&clientIp=$remote_addr;
internal;
}
location /bdata {
proxy_pass http://bdata;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 1800s;
}
}
}