我在 aws lighsail 服务器上托管一个网站。它是单服务器,我在其上运行 4 个 docker 容器。1-nginx、2-node js、3- spring bot、4 - mysql。
目前,我的网站加载速度很快:
server {
listen 80;
server_name *.example.com;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
client_max_body_size 100M;
location / {
proxy_pass http://cahub-client:4000;
}
location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://microservice:8080;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
我已经从 goddady 购买了 ssl 证书,现在正在安装在我的服务器上。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name *.domain.com;
ssl_certificate /etc/nginx/certs/cae51a61335308544.pem;
ssl_certificate_key /etc/nginx/certs/www.eaxmple.com.key;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
client_max_body_size 200M;
location / {
proxy_pass http://cahub-client:4000;
}
location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://microservice:8080;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
那么现在发生了什么。当我在 url 中输入我的域名时,它会重定向到 https,但只有 angular 客户端位置块在运行,这是我的前端。但每当从前端到后端进行调用时。它也应该转到我的反向代理块 /api。这不是 reolvong,而是出现错误混合上下文。当我在网络选项卡中看到时。我的前端调用正在进行https://example.com但我的后端调用正在像之前一样进行http://example.com/api/。
答案1
您需要修复您的前端应用程序,以便它能够调用后端https://example.com/api
而不是http://example.com/api
。