簡體   English   中英

Nginx 反向代理端口 3001

[英]Nginx reverse proxy for port 3001

我有一個在端口 3001 上運行的快速服務器,它為 React 應用程序提供服務。

假設我的域名是 example.com; 我想要實現的是:

  1. 可以調用https://example.net/api/getUsers

  2. http://1.2.3.4:3001/重定向到https://example.net/

  3. 基本上將所有 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;
}

但請注意您的反應應用程序。 本地監聽 localhost:3001

proxy_pass http://localhost:3001;

所以確保反應應用程序。 也沒有在 1.2.3.4:3001 套接字上監聽。 否則,您將收到Address already in use錯誤,nginx 將無法啟動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM