Nginx 是我的网站的反向代理,有时网站会出现故障,导致出现错误页面。
我像这样重新启动了我的应用程序:
systemctl restart myapplication.service
但没有帮助。
然后我像这样重新启动了 SQL 服务
systemctl restart mssql-server
,但没有帮助。
然后我Nginx
像这样重新启动了服务
systemctl restart nginx
,网站又可以正常运行了。
因此我查看了 nginx 错误日志并试图找出问题所在,我看到了数千行这样的警告:
[警告] 31507#31507: *4839 读取上游时,上游响应被缓冲到临时文件 /var/cache/nginx/proxy_temp/2/20/0000000202
这是我的配置默认配置文件文件:
server {
#listen 80;
listen *:443 ssl;
ssl_certificate /etc/ssl/example.pem;
ssl_certificate_key /etc/ssl/example.key;
server_name example.com *.example.com;
location / {
proxy_pass https://localhost:7001/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
我读了给出的答案这里这建议设置为proxy_max_temp_file_size
,0
但这对我来说没有意义,因为如果缓冲区已满,它会写入临时文件,那么我为什么要将其限制为 0?
我正在考虑的另一个选项是增加缓冲区大小(默认值),但我并不知道是否应该这样做。它说:
语法:proxy_buffer_size size;
默认值:proxy_buffer_size 4k|8k;
上下文:http、server、location
设置用于读取从代理服务器收到的响应的第一部分的缓冲区大小。此部分通常包含一个小的响应标头。默认情况下,缓冲区大小等于一个内存页。根据平台的不同,缓冲区大小可以是 4K 或 8K。但是,它可以变得更小。
我应该怎么办?