Ubuntu 10.04でApache2を使用して、LAMPスタック上で100を超えるWebアプリケーション(毎日成長)を実行しています。
静的コンテンツへのすべてのリクエストはCookieなしである必要があります。
私たちは多くの異なるドメインでアプリケーションをホストしており、その大部分はSaSSアプリケーションです。ドメインの多くは、サブドメイン上のアプリケーションのインスタンスをホストします。 myapp.example.com、myapp2.example.commyapp.otherexample.comなど。
現時点では、すべての静的コンテンツは、それを要求している(サブ)ドメインに関連するサーバーです。
プロセスを理解している限り、新しいドメインを設定する必要があります。 staticexample.com。
この場合このドメインの仮想ホストでの特別な構成は、Cookieが提供されないようにするために必要ですか?
また、代わりにstatic.example.comを使用することは可能でしょうか?
この場合 Cookieが提供されないようにするには、このサブドメインの仮想ホストでどのような構成が必要ですか?
静的コンテンツを提供するために別のドメイン(サブドメインではない)を設定すると、Cookieは使用されなくなります。 Cookieは、Webサーバーではなく、アプリケーションによって設定されます。
例。 yahooはyimg.comを使用して静的コンテンツを提供します。 yahoo.comのページがyimg.comのオブジェクトを参照している場合、あるドメインのCookieに別のドメインがアクセスできないため、yahoo.comのCookieはyimg.comドメインに送信されたリクエストとともに送信されません。
Static.example.comの代わりにstatic-example.comを使用して静的コンテンツを提供することをお勧めします。このため、Cookie用にWebサーバーで特別なことをする必要はありません。通常のドメインと同じように静的ドメインを構成し、使用を開始します。
まず、簡単な部分:DNS。既存のホスト名のCNAMEレコードとして作成するか、IPアドレスを直接指すAレコードを作成するかに関係なく、サーバーを指す追加のレコードを作成するだけです。
第二に、中程度の部分: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はそのドメイン内のすべてのサイトに送信されるため、完全に別個のドメイン(たとえば、staticexample.com)を購入するか、全員に「www.example.com」を使用させ、「www」でのみ有効なCookieを発行する必要があります。アプリケーションの.example.com」。強制部分はで行うことができます
<VirtualHost *:80>
ServerName example.com
RedirectPermanent / http://www.example.com/
</VirtualHost>
アプリケーションのCookieを修正するのはあなた次第です。たとえば、PHPの setcookie() 関数の$ domainフィールドを参照してください。
別のドメインを使用する場合は、上記のリダイレクトの代わりに、www.example.comVirtualHostにServerAlias example.com
行を追加できます。