【问题标题】:Nginx: (111: Connection refused) while connecting to upstreamNginx:(111:连接被拒绝)同时连接到上游
【发布时间】:2016-07-15 07:48:02
【问题描述】:

我正在尝试使用 Nginx 进行反向代理。我在端口 3333 上有 1 个 Node.js 应用程序,在端口 3334 上有 Golang 应用程序。调用 Golang API 时,我在 /var/log/nginx/error.log 中看到此消息:

2016/07/15 10:18:36 [error] 4835#0: *131 connect() failed (111: Connection refused) while connecting to upstream, 
client: 27.69.66.52, 
server: video1.techmaster.vn, 
request: "GET /stream/dash/5klRyUnPVyDWouxscIT42uWs5JL4x9nHFol9ecg5g0GLf7aTaI/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwcmljZSI6MCwiZnVsbCI6dHJ1ZSwidmlkZW8iOnsiaWQiOjEwODcsIm5hbWUiOiJtcDNaaW5nU2hvd0RhdGEtMjY0Lm1wNCIsInBhdGgiOiIvbWVkaWEvODIxNyJ9LCJhdHRhY2htZW50IjpbXSwiZXhwIjoxNDY4NTU2NTE2fQ.qc9d_XPhCepHf5iJyf9ORBPOo3pTvF8Th_VMadNSM2o/43f_vid_19.m4s HTTP/1.1", 
upstream: "http://127.0.0.1:3334/stream/dash/5klRyUnPVyDWouxscIT42uWs5JL4x9nHFol9ecg5g0GLf7aTaI/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwcmljZSI6MCwiZnVsbCI6dHJ1ZSwidmlkZW8iOnsiaWQiOjEwODcsIm5hbWUiOiJtcDNaaW5nU2hvd0RhdGEtMjY0Lm1wNCIsInBhdGgiOiIvbWVkaWEvODIxNyJ9LCJhdHRhY2htZW50IjpbXSwiZXhwIjoxNDY4NTU2NTE2fQ.qc9d_XPhCepHf5iJyf9ORBPOo3pTvF8Th_VMadNSM2o/43f_vid_19.m4s", 
host: "video1.techmaster.vn", 
referrer: "https://techmaster.vn/khoa-hoc-online/8217/lap-trinh-ios-swift/96/Location-Notification"

我不知道问题出在哪里。也许我在 Nginx 配置中犯了一些错误。这是我的 Nginx 配置:

server {
listen  80;
server_name video1.techmaster.vn www.video1.techmaster.vn;
return  301 https://$server_name$request_uri;
}
server {
listen 443 spdy ssl;
server_name video1.techmaster.vn www.video1.techmaster.vn;
keepalive_timeout 30;

# Allow upload video up to 100M
client_max_body_size 100M;

# Config SSL
ssl on;
ssl_certificate /etc/ssl/cert_chain.crt;
ssl_certificate_key /etc/ssl/private/sv.video1.techmaster.vn.key;
ssl_session_timeout 5m;
ssl_session_cache  shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "xxxxxxxxxx";
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
ssl_stapling on;

location ~* /.*\.(xml)$      {
    root /var/www/videos.techmaster.vn/public;
    expires 7d;
}

location /stream/ {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:3334;

    set $cors '';

    if ($http_origin ~* (localhost|www\.techmaster\.vn|techmaster\.vn)) {
        set $cors 'true';
    }

    if ($cors = 'true') {
        add_header 'Access-Control-Allow-Origin' "$http_origin";
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Range';
    }
}

location / {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:3333;

    set $cors '';

    if ($http_origin ~* (localhost|www\.techmaster\.vn|techmaster\.vn)) {
        set $cors 'true';
    }

    if ($cors = 'true') {
        add_header 'Access-Control-Allow-Origin' "$http_origin";
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Range';
    }
}
}

【问题讨论】:

    标签: nginx


    【解决方案1】:

    我在使用节点平台配置 AWS 时遇到了同样的问题。

    我使用 3000 端口来启动应用程序。 当我将端口更改为 8081 时,它起作用了。

    【讨论】:

      【解决方案2】:

      我已经编辑了 Nginx 配置并且它可以工作

      server {
          listen 80 default_server;
      listen [::]:80 default_server ipv6only=on;
      
          listen 443 ssl;
      
          server_name 192.168.1.10;
          keepalive_timeout 30;
      
      # Config SSL
      ssl_certificate /etc/nginx/ssl/nginx.crt;
          ssl_certificate_key /etc/nginx/ssl/nginx.key;
      ssl_session_timeout 5m; 
      ssl_session_cache  shared:SSL:10m;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
      ssl_prefer_server_ciphers on;
      add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
          ssl_stapling on;
      
      # Allow upload video up to 100M
          client_max_body_size 100M;
      
      location ~* /.*\.(xml)$      {
              root /var/www/videos.techmaster.vn/public;
              expires 7d;
          }
      
          location /stream/* {
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";
              proxy_http_version 1.1;
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header Host $host;
              proxy_pass http://127.0.0.1:3334;
      
              set $cors '';
      
              if ($http_origin ~* (localhost|tech\.dev)) {
                      set $cors 'true';
              }
      
              if ($cors = 'true') {
                      add_header 'Access-Control-Allow-Origin' "$http_origin";
                      add_header 'Access-Control-Allow-Credentials' 'true';
                      add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
                  add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Range';
              }
          }
      
          location / {
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";
              proxy_http_version 1.1;
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header Host $host;
              proxy_pass http://127.0.0.1:3333;
      
          set $cors '';
      
              if ($http_origin ~* (localhost|tech\.dev)) {
                      set $cors 'true';
              }
      
          if ($cors = 'true') {
                      add_header 'Access-Control-Allow-Origin' "$http_origin";
                      add_header 'Access-Control-Allow-Credentials' 'true';
                      add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
                  add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Range';
          }
          }
      }
      

      【讨论】:

      • 你能告诉我你到底做了什么改变,为什么?我在使用不同的应用程序时遇到了类似的问题。
      • @Folatt 我将location /stream/ 更改为location /stream/*
      猜你喜欢
      • 1970-01-01
      • 2018-04-07
      • 2017-10-18
      • 2016-10-06
      • 1970-01-01
      • 2014-02-26
      • 2012-11-21
      • 2020-03-13
      • 2013-11-03
      相关资源
      最近更新 更多