首页 > 解决方案 > 为什么我的网站在多次调用 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 太多次,一切都是正常的。

标签: linuxhttpnginx

解决方案


如果您希望 nginx 直接重写 url,您可以删除此行:

proxy_redirect off;

请查看文档:https ://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect 否则这是您的浏览器而不是 nginx 的问题。


推荐阅读