Nginx代理nodejs本机可以访问,外网显示504 Gateway Time-Out

Nginx代理nodejs本机可以访问,外网显示504 Gateway Time-Out

问题描述:

近期在做微信小程序的开发,使用node.js的express框架编写后台代码,监听端口为4000,使用nginx代理https服务时(域名已备案,证书正确)发现在本机可以使用域名访问GET服务,但是在外网通过域名访问GET服务时出现504错误,请求解决。
图片说明
图片说明

 #user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    fastcgi_buffers 8 128k;
    send_timeout 60;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       443 ssl;
        server_name  19094044.nnuteam.club;

        ssl_certificate      cert/1_19094044.nnuteam.club_bundle.crt;
        ssl_certificate_key  cert/2_19094044.nnuteam.club.key;

        ssl_session_timeout  5m;
        ssl_protocols TLSv1 SSLv3;

        ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            proxy_pass http://127.0.0.1:4001;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_set_header X-Forward-Proto https;
            proxy_http_version 1.1;
            # for websocket
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
}

查看Nginx的log日志。很大可能nodejs处理Nginx转发的请求失败了

腾讯云上转发的端口似乎只能用默认的80端口,我把4001改成80之后就成功了,当然再加上允许跨域访问的代码。

检查你Nginx配置,有可能是Nginx配置的端口被占用了

代码是不全吗?443是ssl的端口,但是还是需要指定本地服务的端口吧