2015-10-31 2 views
2

У меня есть несколько статических HTML-файлов, которые генерируются в начале каждого месяца и хороши до конца того же месяца. Я хотел бы expire их в конце месяца, но не знаю, как сообщить nginx, чтобы сделать это.истекает статический HTML-файл в конце текущего месяца

Могу ли я использовать Lua или какой-либо другой язык для вычисления этой даты в файле конфигурации или это требует слишком большой вычислительной мощности?

В настоящее время я использую эту конфигурацию для истечения срока их действия через 7 дней. Что мне нужно изменить, чтобы истечь их в 23:59 часов в последний день текущего месяца?

location ~* \.(html|HTML)$ { 
    gzip_static on; 
    add_header Cache-Control public; 
    expires 7d; 
} 

ответ

0

В lua вы можете просто написать функцию.

-- day is the day of the month as a number 
-- file can be 1 filename or a table of several filenames 
function expire(file, day, time_) 
    day = day or 1 -- day's default value incase it isn't set 
    -- get the current day of the month, convert it to a number and compare it to day 
    -- get the current hour and minute and compare it to time_ 
    if tonumber(os.date("%d")) == day and os.date("%H:%M") == time_ then 
     -- see if file is a table 
     if type(file) == 'table' then 
      -- if it is cycle through the table for the file names 
      for _, filename in pairs(file) do 
       -- make sure we are dealing with a string 
       if type(filename) == 'string' then 
        -- delete the file 
        os.remove(filename) 
       end 
      end 
     else 
      -- make sure file is a string 
      if type(file) == 'string' then 
       -- delete the file 
       os.remove(file) 
      end 
     end 
    end 
end 

-- calling the function 
expire("somefile.txt", 31, "23:59") 

Более подробную информацию о os.date заканчивало https://www.lua.org/pil/22.1.html

Смежные вопросы