Назад | Перейти на главную страницу

Как сделать так, чтобы статический URL-адрес указывал на разные серверы?

Я создаю поддержку нескольких серверов для сайта загрузки файлов, на котором я работаю. Когда изображения загружаются ... они сохраняются в виде миниатюр на главном внешнем сервере, пока cron не запустится (каждые 10 минут) и не переместит их на серверы хранения, поэтому в течение первых 10 минут они будут находиться и обслуживаться. с главного интерфейсного сервера.

Когда файл загружается, пользователям даются коды для встраивания ... это URL-адрес эскиза + ссылка на полный размер, то есть HTML-страницу. Так что это может быть что-то вроде http://www.domain.com/temp_content/filename.jpg который ссылается на http://www.domain.com/file-ID

За исключением 10 минут, http://www.domain.com/temp_content/filename.jpg не будет, это будет http://server1.domain.com/thumbs/filename.jpg

если пользователь схватил исходный код ... файл большого пальца будет поврежден.

Я МОГ переместить файл в место назначения без cron, но это займет время и задержит скрипт до завершения перемещения. Я также не хочу, чтобы пользователи выполняли подобные команды, я бы предпочел, чтобы сервер выполнял их через регулярные промежутки времени.

Что еще я могу сделать?

Я бы начал всегда с абстрагирования имени файла. Это избавит вас от лишних хлопот.

Затем вы можете раздать вторую ссылку (server1.domain.com), так как именно туда пойдет большинство запросов, а затем обработать крайние случаи, когда файл еще не был перемещен с помощью mod_rewrite. Например:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.*)$ http://www.domain.com/$1 [R=302]

Это будет 302 (временно) перенаправить запросы к файлам, которые не существуют, в другой домен.

В качестве альтернативы вы можете сделать хранилище с первого сервера доступным со второго.

Не могли бы вы изменить сообщение, отправляемое пользователям, чтобы оно включало оба URL-адреса?

Вы также можете создать настраиваемую страницу ошибок, которая позволяет пользователям вводить предоставленный им URL-адрес и автоматически переводить его.