Nginx
將 nginx 從 http 轉換為 https
我在 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/。
您需要修復您的前端應用程序,以便它呼叫後端
https://example.com/api
而不是http://example.com/api
.