将带有域的 ssl 证书添加到前端应用程序后,Node Express api 停止工作

问题描述 投票:0回答:1

我在本地开发一个项目已经有一段时间了,它由一个 React 前端应用程序和一个 Express 后端应用程序组成,前端运行在端口 6969 上,后端运行在 6868 上,之前我使用

http://localhost:6868/endpoint 请求后端
它工作得很好,最近我购买了一个域名和一个 ssl 证书,并将我的应用程序部署在数字海洋 Droplet 上。

使用 nginx 部署并将域+证书添加到前端应用程序后,没有任何 api 调用通过,我尝试过:

请求网址 结果
https://localhost:6868
(失败)net::ERR_CONNECTION_REFUSED
http://localhost:6868
(失败)net::ERR_CONNECTION_REFUSED
https://64.227.113.122:6868
(失败)net::ERR_SSL_PROTOCOL_ERROR
http://64.227.113.122:6868
(被阻止:混合内容)
http://mazad.social:6868
(被阻止:混合内容)
https://www.mazad.social:6868
(失败)net::ERR_SSL_PROTOCOL_ERROR

奖金!!奇怪的行为:

对于

http://www.moazad.social:6868
->

打开

https://64.227.113.122:6969
(前端端口)有效(API 请求通过),但打开
https://www.mazad.social/home
->
(blocked:mixed-content)

这是我的 nginx 配置:

# default config
.
.
.

server {
    listen 443 ssl;
    server_name mazad.social;
    ssl_certificate /etc/nginx/ssl/mazad_social/ssl_bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/mazad_social/www.mazad.social.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

    location / {
        proxy_pass http://localhost:6969;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

我希望我仍然可以通过

https://www.mazad.social/home
访问我的网站,同时 API 工作正常,我真的不知道修复在哪里,是来自 Nginx 还是代码或 Docker 配置。

感谢所有帮助,请随时索取额外信息!

node.js express nginx
1个回答
0
投票

当您的代理配置明确配置为

https://www.mazad.social
 时,您将无法访问 
https://mazad.social

您应该提供有关 docker 文件的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.