Nginx 使用 host 判斷作 reverse proxy
on 2022-12-02
直接上設定
server {
listen 80;
listen [::]:80;
server_name api.example.com, example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
set $proxy http://0.0.0.0:3000;
if ($host ~ api.example.com) {
set $proxy http://0.0.0.0:8000;
}
proxy_pass $proxy;
}
}
Nginx 使用 refer 處理 CORS header
on 2021-04-30
處理 CORS 算是許多 Web 開發者會處理的情況
其中要又有一個比較重要的部分就是要設定 Access-Control-Allow-Origin
這個允許來源的 header
通常為了安全性問題, 都是只會設定允許的 host 上去
但是常常設定而且在不同環境設定也是有點麻煩
所以這邊就用了直接在 server 設定的方式來處理
這樣直接看 server 的 rule 設定即可
也可以快速的條列不同環境的 host
用法
if ($http_referer ~* example.com) {
add_header 'Access-Control-Allow-Origin' 'https://example.com';
}
if ($http_referer ~* dev.example.com) {
add_header 'Access-Control-Allow-Origin' 'https://dev.example.com';
}
這個判斷沒有固定的寫法
可以參考底下 Nginx 對 http_referer
的介紹來針對需要判斷 host 的方式進行修改