express - SSl 适用于前端,但不适用于后端
问题描述
我有一个 MERN 堆栈网站,我使用 nginx 服务。我的后端服务器通过 http 在端口 5000 上运行。SSL 适用于我的前端,但我无法向我的快速服务器发出 https 请求。我该如何解决这个问题?我应该为我的后端使用另一个 SSL 吗?
这就是我的 express server.js 的样子:
const express = require("express");
const dotenv = require("dotenv");
const routers = require("./routers/index");
const connectDatabase = require("./helpers/database/connectDatabase");
const path = require("path");
const cors = require("cors");
// Environment Variables
dotenv.config({
path: "./config/env/config.env",
});
// MongoDb Conenction
connectDatabase();
const app = express();
// Express - Body Json
app.use(express.json());
const PORT = process.env.PORT;
// CORS
app.use(cors());
// Router Middleware
app.use("/api", routers);
app.listen(PORT, () => {
console.log(
`App Started on PORT: ${process.env.PORT} : ${process.env.NODE_ENV}`
);
});
这就是 nginx/sites-avaliable/my-site.com 的样子:
server {
root /var/www/my-site.com/html;
index index.html index.htm index.nginx-debian.html;
server_name my-site.com www.my-site.com;
location / {
try_files $uri /index.html;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/my-site.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/my-site.com/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 {
if ($host = www.my-site.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = my-site.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name my-site.com www.my-site.com;
return 404; # managed by Certbot
}
解决方案
推荐阅读
- reactjs - react navigation v3 通过 AppContainer 设置 screenProps
- android - 使用 for 循环根据用户输入创建 GridView
- amazon-web-services - Lambda 无法访问 KMS 密钥
- r - 来自超过 2 列的数据框的成对因子/分类变量列联表
- c++ - 是否可以添加到 char 类型变量以获取字符串?
- python - 熊猫数据框中的乳胶符号
- c - C: 调用main时传入的store参数
- elasticsearch - Elasticsearch 按字段名称聚合
- c# - WPF 将数据从一个窗口传递到另一个窗口
- python-3.x - 如何为谷歌应用引擎打包python3模块