Мы запускаем более сотни веб-приложений (ежедневно растущих) в стеке LAMP с использованием Apache2 в Ubuntu 10.04.
Мы бы хотели, чтобы все запросы к статическому контенту не содержали файлов cookie.
Мы размещаем приложения во многих различных доменах, большинство из которых являются приложениями SaSS. Многие из доменов содержат экземпляры приложений на поддоменах, т.е. myapp.example.com, myapp2.example.com myapp.otherexample.com и т. д.
В настоящий момент весь статический контент является сервером относительно (под) домена, запрашивающего его.
Насколько я понимаю процесс, мне нужно будет настроить новый домен, например. staticexample.com.
В таком случае требуется ли специальная конфигурация виртуального хоста для этого домена, чтобы гарантировать, что файлы cookie не обслуживаются?
Кроме того, можно ли вместо этого использовать static.example.com?
В таком случае Какие конфигурации мне понадобятся на моем виртуальном хосте для этого поддомена, чтобы файлы cookie не обслуживались?
Когда вы настраиваете другой домен (не субдомен) для обслуживания статического контента, он будет без файлов cookie. Файлы cookie устанавливаются приложением, а не веб-сервером.
Пример. yahoo использует yimg.com для обслуживания статического контента. Когда страница на yahoo.com ссылается на объект на yimg.com, cookie yahoo.com не отправляется с запросом, отправленным в домен yimg.com, поскольку файлы cookie одного домена не могут быть доступны для другого.
Я бы посоветовал вам использовать static-example.com для обслуживания статического контента вместо static.example.com. Для этого вам не нужно делать ничего особенного на веб-сервере для файлов cookie. Настройте статический домен как обычный домен и начните его использовать.
Во-первых, простая часть: DNS. Все, что вам нужно сделать, это создать дополнительные записи, указывающие на сервер, независимо от того, создаете ли вы их как записи CNAME для существующего имени хоста или записи A, указывающие непосредственно на IP-адрес, зависит от вас.
Во-вторых, средняя часть: Apache. Вы не объясняете, что вы размещаете или есть ли у вас уже виртуальные хосты. Самое простое решение - полностью отключить виртуальный хостинг (никаких команд VirtualHost или NameVirtualHost в вашей конфигурации, только DocumentRoot глобального уровня), что позволит apache обслуживать один и тот же сайт независимо от того, как подключился клиент. В противном случае, если вы хотите использовать разные DocumentRoot
s для разных имен хостов, вам нужно установить NameVirtualHost
к чему-то вроде *:80
, затем создайте <VirtualHost *:80>
(должен соответствовать настройке NameVirtualHost) записи вроде
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/example.com
</VirtualHost>
<VirtualHost *:80>
ServerName static.example.com
DoumentRoot /var/www/static
</VirtualHost>
Наконец, самая сложная часть: сделать его "без файлов cookie". Файлы cookie уровня домена отправляются на каждый сайт в этом домене, поэтому вы должны либо купить полностью отдельный домен (скажем, staticexample.com), либо заставить всех использовать «www.example.com» и выдать файлы cookie, действительные только на «www. .example.com "в вашем приложении. Форсирующая часть может быть выполнена с
<VirtualHost *:80>
ServerName example.com
RedirectPermanent / http://www.example.com/
</VirtualHost>
Исправление файлов cookie в вашем приложении зависит от вас. Например, см. Поле $ domain в PHP setcookie () функция.
Если вы выберете отдельный домен, то вместо указанного выше перенаправления вы можете добавить ServerAlias example.com
в строку www.example.com VirtualHost.