nodejs 应用程序工作但 nginx 代理没有捕获它

nodejs application work but nginx proxy doesn't catch it

我的服务器上有一个 Nodejs 应用程序 运行,所以我想使用 Nginx 反向代理从一个不错的域名进行 API 调用,而不是输入 IP 和端口,我也生成了一个免费的 let's encrypt 证书用于此目的。

问题是如果我使用 IP 和端口反向服务器不工作然后如果我使用域名它会工作它给我一个 Nginx 模板测试页面反正这是我的配置 :

Nginx config http { 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  /var/log/nginx/access.log  main;

sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
keepalive_timeout   65;
types_hash_max_size 2048;

include             /etc/nginx/mime.types;
#include /etc/nginx/sites-enabled/*;
default_type        application/octet-stream;

# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

my reverse proxy config and location

/etc/nginx/conf.d/api1.conf

后端API 服务器 { server_name api.domain.com;

location / {
    proxy_pass http://localhost:26423/all; #whatever port your app runs on
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

}

enter image description here

每当我尝试通过浏览器或邮递员查看 API 时,我都会看到此页面

不清楚您是否有域。如果你有一个,它应该指向服务器的 public ipv4 ip,然后创建一个代理到你的 nodejs 应用程序的 nginx 虚拟主机。

假设你的 public 服务器 ipv4 ip 地址是 1.2.3.4 并且你有一个像 nodejsappdomain.com 这样的域,那么 nodejsappdomain.com 应该指向 1.2.3.4 并且 nginx vhost 将是这样的:

服务器{ 听 80;

server_name nodejsappdomain.com www.nodejsappdomain.com;

location / {
    proxy_pass  http://127.0.0.1:nodejsapp_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
}

}