[英]Nginx - wildcard static domain
我正在嘗試設置一個通配符靜態域。 我的服務器托管多個域,因此我寧願為它們所有配置一個域,而不必手動添加每個域。 到目前為止,我有這個...
server {
server_name static.* www.static.*;
root /var/web/$host/;
access_log off;
error_log off;
location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) {
add_header Cache-Control public;
add_header Cache-Control must-revalidate;
expires 7d;
}
location / {
deny all;
}
}
所有文件都以該格式存儲在/var/web/example.com/中,包括子域/var/web/subdomain.example.com/
該域用於靜態內容(僅圖像/ css / js等),我希望根目錄與普通站點相同,只是它只允許靜態文件(因此,php fpm不在此處)
沒有任何nginx錯誤,但是我得到404錯誤,我感覺這與root / var / web / $ host /有關; 有任何想法嗎?
我會嘗試
root /var/web/$http_host/;
並且我還會嘗試使用固定域名(例如www.static.whatever.com)來查看是否可以訪問至少一個靜態文件。 然后,我將繼續為該問題添加更多的自由度。
而且我會扔
listen 80;
只想確認一下。
閑逛了一會兒,使我想到了這一點: http : //nginx.org/en/docs/http/server_names.html
我在哪里找到可以在server_name中進行正則表達式的地方。 所以這對我有用:
server {
listen 80;
server_name ~^static\.(?<domain>.+)$;
root /var/web/$domain/;
access_log off;
error_log off;
location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) {
add_header Cache-Control public;
add_header Cache-Control must-revalidate;
expires 7d;
}
location / {
deny all;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.