【问题标题】:NGINX : upstream timed out (110: Connection timed out) but not when URL queried directlyNGINX:上游超时(110:连接超时)但直接查询URL时没有
【发布时间】:2021-02-23 02:18:42
【问题描述】:

我正在使用 Ubuntu 20.04 来托管许多网站,并且我正在使用 nginx 作为我的 apache 网络服务器的网关服务器。

我面临的问题是我的网站不会加载它加载的 javascript 加载的组件之一(通过 jQuery 的 AJAX)。它是将一个简单的背景 URL 列表作为 JSON 数据加载,通常需要不到一秒钟的时间。当直接在浏览器中查询时,它确实如此。但是当由网站本身的 HTML + Javascript 加载时,它根本不会加载。 :(

/etc/nginx/sites-enabled/00-default-ssl.conf:

    # HTTPS iRedMail 
server { 
        listen 443 ssl http2; 
        listen [::]:443 ssl http2; 
        server_name mail.mydomain.com; 
        root /var/www/html; 
 
    index index.php index.html; 
 
    include /etc/nginx/templates/misc.tmpl; 
    include /etc/nginx/templates/ssl.tmpl; 
    include /etc/nginx/templates/iredadmin.tmpl; 
    include /etc/nginx/templates/roundcube.tmpl; 
    include /etc/nginx/templates/sogo.tmpl; 
    include /etc/nginx/templates/netdata.tmpl; 
    include /etc/nginx/templates/php-catchall.tmpl; 
    include /etc/nginx/templates/stub_status.tmpl; 
} 
 
# HTTPS my own server 
server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name mydomain.com; 
        #root /home/myrealname/data1/htdocs/nicer.app; 
 
  ssl_certificate /home/myrealname/data1/certificates/other-ssl/all.crt; 
  ssl_certificate_key /home/myrealname/data1/certificates/other-ssl/mydomain.com.key; 
 
  ssl on; 
  ssl_session_cache shared:SSL:10m; 
  ssl_session_timeout 10m; 
  ssl_protocols TLSv1.2 TLSv1.1 TLSv1; 
  ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !RC4 !EXP !PSK !SRP !CAMELLIA !SEED'; 
  ssl_prefer_server_ciphers on; 
  ssl_dhparam /etc/nginx/dhparam.pem; 
 
  location / { 
    proxy_pass https://192.168.178.55:444/; 
    proxy_redirect off; 
    proxy_buffering off; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Ssl on; 
 
  proxy_connect_timeout 159s; 
  proxy_send_timeout   60; 
  proxy_read_timeout   60; 
  send_timeout 60; 
  resolver_timeout 60; 
  } 
}

/etc/apache2/sites-enabled/00-default-ssl.conf 是您典型的启用 ssl 的 apache 配置,在 *:444 上为 VirtualHost 提供服务。

更新:问题似乎与在 unix 套接字或 unix 端口上运行 php7.4-fpm 或在启用 SSL 和 PHP 的普通 apache2 上运行无关。

UPDATE2:这个问题是由同时来自 javascript 的多个 AJAX 请求引起的,这在很大程度上超出了我的控制范围。

【问题讨论】:

    标签: javascript html ssl nginx


    【解决方案1】:

    请检查您是否可以在网站加载时加载直接 URL

    【讨论】:

    • 在主网站完全超时之前,直接 URL 不会产生结果
    【解决方案2】:

    您请求的数据,是否经过 PHP 过滤? 如果是这样,您使用的是哪个 PHP 和 Apache?普通的香草,还是 php-fpm?

    【讨论】:

    • 是的,数据实际上是经过PHP过滤的。到目前为止,我已经尝试了在端口 444 启用 SSL 的普通香草 apache VirtualHost 和默认端口 9999 的 php-fpm。php-fpm 不会让我在 127.0.0.1:9999 上连接(并且 ufw 允许9999 已完成),引用浏览器中的“连接重置”.. 日志中缺少信息令人沮丧.. :(
    【解决方案3】:

    我的网页所做的其中一件事是从 couchdb 服务器加载 JSON 数据,我必须使用 SSL。

    在所有的混乱中,我忘记重新启用 nginx 转发到 couchdb http(不是 https)。只需将其配置文件从 /etc/nginx/sites-enabled.bak/couchdb 复制到 /etc/nginx/sites-enabled/couchdb.conf 即可解决我所有的问题:)

    【讨论】:

      猜你喜欢
      • 2014-03-01
      • 2018-01-31
      • 2012-12-19
      • 2011-08-01
      • 2021-06-01
      • 1970-01-01
      • 2013-09-15
      • 2019-06-20
      • 2011-10-12
      相关资源
      最近更新 更多