Laravel 5.x HTTPS反向代理的實現

需求

可針對多個域名設置HTTPS並指向到同一個項目。
最早考慮到的是經過nginx的反向代理來實現,最終測試發現效果並不完美。
示例以下:

server {
listen 127.0.0.1:8080;
root /path/to/application;
index index.html index.php;
...php config;
}
server {
listen 80;
listen 443 ssl;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host; # 設置Host
proxy_set_header X-Forwarded-For $remote_addr; # 設置請求源地址
proxy_set_header X-Forwarded-Proto $scheme; # 設置Http協議
... proxy header config;
}
...ssl config
}
php

實現後訪問通常的接口是沒有問題的,可是在項目內部因爲認爲請求協議是HTTP而不是HTTPS會致使經過框架生成的連接爲HTTP協議。html

解決方案

  1. 在Laravel 5.5.x 可經過參照官方文檔 進行設置白名單
  2. 在Laravel 5.4.x 可經過安裝插件設置代理白名單來實現
相關文章
相關標籤/搜索