你可以使用以下的Nginx配置來實現在本站圖片返回404時,自動從備用站點獲取圖片:
http {
upstream backup_images {
server backup.example.com;
}
server {
listen 80;
server_name example.com;
root /var/www/html;
location /images/ {
try_files $uri @backup;
}
location @backup {
proxy_pass http://backup_images;
}
}
}這個配置會將example.com的80端口監聽並將所有請求轉發到/var/www/html目錄下。所有以/images/開頭的請求將會被處理。如果本站點請求的圖片不存在,Nginx會自動將請求轉發到備用站點backup.example.com,從備用站點獲取圖片。
需要注意的是,這個配置使用了upstream模塊來定義備用站點。如果你的Nginx版本沒有內置upstream模塊,需要手動編譯Nginx時開啓upstream模塊。同時,由於代理的存在,備用站點必須配置CORS策略,允許example.com的訪問。否則,瀏覽器將會拒絕請求備用站點的圖片。
我的使用
我有兩個站點,一個是主站,一個是圖片備用站!
兩個站圖片相同,圖片路徑也相同!
由於備份主站時,圖片太多,不想備份,所以便將圖片分離了出來!
本站路徑/d/file/下面便是圖片存放了!
備用站路徑也是這樣,那麼此刻僞靜態規則這樣寫: