[英]Nginx reverse proxy for port 3001
我有一個在端口 3001 上運行的快速服務器,它為 React 應用程序提供服務。
假設我的域名是 example.com; 我想要實現的是:
基本上將所有 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.