linux - 为什么我的网站在多次调用 api 后在“重定向”处暂停?
问题描述
我Nginx
将请求转发到网站和 api 作为我的反向代理。但是如果我调用 api many times
,网站将停在“重定向”页面,我必须点击 url manually
。
这是我的 nginx 配置(我隐藏了 ssl 配置):
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
server {
listen 80;
server_name alpha.hunghingprinting.com;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443;
# set proper server name after domain set
server_name alpha.hunghingprinting.com;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
proxy_set_header X-Client-IP $remote_addr;
proxy_set_header HTTP_X_FORWARDED_HOST $remote_addr;
# SSL parameters
ssl on;
ssl_prefer_server_ciphers on;
# odoo log files
access_log /var/log/nginx/odoo14-access.log;
error_log /var/log/nginx/odoo14-error.log;
# increase proxy buffer size
proxy_buffers 16 64k;
proxy_buffer_size 128k;
proxy_read_timeout 900s;
proxy_connect_timeout 900s;
proxy_send_timeout 900s;
# force timeouts if the backend dies
proxy_next_upstream error timeout invalid_header http_500 http_502
http_503;
types {
text/less less;
text/scss scss;
}
# enable data compression
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript application/pdf image/jpeg image/png;
gzip_vary on;
client_header_buffer_size 4k;
large_client_header_buffers 4 64k;
client_max_body_size 0;
location / {
proxy_pass http://127.0.0.1:8069;
# by default, do not forward anything
proxy_redirect off;
}
location /longpolling {
proxy_pass http://127.0.0.1:8072;
#proxy_pass http://odoochat;
}
location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
expires 2d;
proxy_pass http://127.0.0.1:8069;
add_header Cache-Control "public, no-transform";
}
# cache some static data in memory for 60mins.
location ~ /[a-zA-Z0-9_-]*/static/ {
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
proxy_buffering on;
expires 864000;
proxy_pass http://127.0.0.1:8069;
}
}
}
如果我不使用我的 api 太多次,一切都是正常的。
解决方案
如果您希望 nginx 直接重写 url,您可以删除此行:
proxy_redirect off;
请查看文档:https ://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect 否则这是您的浏览器而不是 nginx 的问题。
推荐阅读
- javascript - 将 SCSS 变量导出到 JS(自动循环变量)
- c# - 从其他位置绑定到现有命令会导致数据错误:2
- python - 使用 tkinter 创建椭圆的流体运动
- python - Keras MLP 分类器不学习
- python - 如何在不安装模块的情况下用 Python 写入 Excel?
- powershell - 如何剪切特定的字符串?
- python - Docker-compose 没有构建一个容器
- arrays - 按键对映射/结构进行分组,并对数组的关联值求和
- c# - C# 在 XML 中搜索标签并显示另一个标签
- python - 从两个二维列表中提取值并将它们存储到熊猫数据框中