我有一个免费的Cloudflare计划,我想将其放入Nginx反向代理。
Nginx反向代理应该处理所有流量和一定的速率限制,然后将所有良好的流量转发到后端,该后端也运行带有PHP FPM和Mysql的Nginx。
现在我注意到的是,从反向代理到后端的所有连接/请求都将停留大约30-60秒,直到它们关闭/消失。
因此,例如,如果我垃圾邮件几次,则在我的终端机中输入f5键:
netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
即使在60秒前关闭浏览器,我仍然看到反向代理IP已连接到后端。
nginx.conf-反向代理
user nginx;
worker_processes 12;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$HTTP_CF_CONNECTING_IP"';
server {
listen 80;
server_name SERVER_IP;
location / {
proxy_pass 'http://BACKEND_IP/';
}
location ~* \.(png|jpg|jpeg|css|js|gif|map|ico|woff|woff2|otf|ttf|eot|svg|txt|pdf|docx?|xlsx?)$ {
access_log off;
log_not_found off;
}
}
access_log /var/log/nginx/access.log main;
include /etc/nginx/mime.types;
}
那为什么关闭请求/连接需要这么长时间?我该如何解决。 因为如果我将后端直接链接到Cloudflare,则请求/连接将在1-2秒后自动关闭。