3001端口的Nginx反向代理

Nginx reverse proxy for port 3001

我在端口 3001 上有一个快速服务器 运行,它为 React 应用程序提供服务。

假设我的域名是example.com; 我想要实现的是:

  1. 调用的可能性https://example.net/api/getUsers

  2. http://1.2.3.4:3001/ with port to https://example.net/

  3. 重定向
  4. 基本上将所有 HTTP 调用(无论是 IP 还是域)重定向到 https://example.net/

有人可以帮助设置 Nginx 配置吗? 这是我目前在 /etc/nginx/sites-available:

下的内容
server {
        server_name 1.2.3.4:3001;
        return 301 https://example.net;
}

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        listen 443 default_server ssl;
        listen [::]:443 default_server ssl;
        server_name example.net www.example.net;

        return 301 https://example.net$request_uri;
}

server {
  listen 80;

  server_name example.net www.example.net;

  location / {
    proxy_pass http://localhost:3001;
    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;
  }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.net/fullchain.pem; # managed by Certbot
   ssl_certificate_key /etc/letsencrypt/live/example.net/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

看起来您的应用正在返回重定向位置:http://1.2.3.4:3001/ 你可以用 proxy_redirect 重写它并减少冗余的东西。

server {
        listen 80 default_server;
        return 301 https://example.net$request_uri;
}

server {  
  listen 443 ssl; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/example.net/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/example.net/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
  server_name example.net www.example.net;

  location / {
    proxy_pass http://localhost:3001;
    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;
    proxy_redirect http://1.2.3.4:3001/ $scheme://$host/;
  }
}

是的,您可以添加以下重定向:

server {
        listen 1.2.3.4:3001;
        return 301 https://example.net;
}

但请注意您的 React 应用程序。在本地收听 localhost:3001

proxy_pass http://localhost:3001;

所以确保 React 应用。也没有在 1.2.3.4:3001 套接字上监听。 否则,您将收到 Address already in use 错误并且 nginx 将无法启动。