需求
可針對多個域名設置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
}
實現后訪問一般的接口是沒有問題的,但是在項目內部由於認為請求協議是HTTP而不是HTTPS會導致通過框架生成的鏈接為HTTP協議。