我在本地开发一个项目已经有一段时间了,它由一个 React 前端应用程序和一个 Express 后端应用程序组成,前端运行在端口 6969 上,后端运行在 6868 上,之前我使用
http://localhost:6868/endpoint
请求后端
它工作得很好,最近我购买了一个域名和一个 ssl 证书,并将我的应用程序部署在数字海洋 Droplet 上。
使用 nginx 部署并将域+证书添加到前端应用程序后,没有任何 api 调用通过,我尝试过:
请求网址 | 结果 |
---|---|
|
(失败)net::ERR_CONNECTION_REFUSED |
|
(失败)net::ERR_CONNECTION_REFUSED |
|
(失败)net::ERR_SSL_PROTOCOL_ERROR |
|
(被阻止:混合内容) |
|
(被阻止:混合内容) |
|
(失败)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 配置。
感谢所有帮助,请随时索取额外信息!
当您的代理配置明确配置为
https://www.mazad.social
时,您将无法访问
https://mazad.social
您应该提供有关 docker 文件的更多信息。