同一服务器上的Web站点(nginx)和nodejs REST API



我想在同一台服务器上使用nginx和nodejs REST API为gatsby.js静态网站提供服务。

目前,我使用Let's Encrypt使用SSL证书运行REST API。它正在侦听端口80和443。

现在我想为网站服务,但我发现nodejs服务器已经使用了端口80。

我该如何处理?你知道怎么做吗?

我看到了两个解决您问题的方案,

  1. 您使REST API在不同于80/443的端口上侦听,以便Gatsby应用程序可以使用它。您应该能够在BACKEND应用程序的配置中执行此操作。

  2. 您使用DNS提供商(如cms.mysite.com(为REST API创建子域,该提供商也将使用端口80/443。

前端应用程序的域名将是mysite.com.

根据发出请求的子域,您可以将Nginx服务器配置为同时为两个应用程序提供服务(BACKEND+FRONTEND(。以下是Nginx default.conf配置文件的示例:

upstream backend {
server web:8000;
}
server {
listen 80;
server_name cms.mysite.com;
location / {
return 301 https://$host$request_uri;
}
...
}
server {
listen 443 ssl;
server_name cms.mysite.com;
...
}
server {
listen 80;
server_name mysite.com;
location / {
return 301 https://$host$request_uri;
}
...
}
server {
listen 443 ssl;
server_name mysite.com;
...
}

这是我对社区的第一个回答,希望对你有所帮助!

最新更新