需求
可针对多个域名设置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协议。