3001端口的Nginx反向代理
Nginx reverse proxy for port 3001
我在端口 3001 上有一个快速服务器 运行,它为 React 应用程序提供服务。
假设我的域名是example.com;
我想要实现的是:
从 http://1.2.3.4:3001/ with port to https://example.net/
重定向
基本上将所有 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 将无法启动。
我在端口 3001 上有一个快速服务器 运行,它为 React 应用程序提供服务。
假设我的域名是example.com; 我想要实现的是:
从 http://1.2.3.4:3001/ with port to https://example.net/
重定向
基本上将所有 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 将无法启动。