簡體   English   中英

一個Django實例下有多個站點-站點有時會提供錯誤的內容

[英]Multiple sites under one Django instance - Sites serve wrong content sometimes

我的django配置有個奇怪的問題。 我在一個django項目目錄下運行三個類似的站點。 我用apache virtualhost分開了它們。 在大多數情況下,它運行得很好,但是有時不知何故位於另一個域的一個域內容之下。

例如domain.cz偽裝為www.microsite.cz。 因此,在兩個域下存在相同的內容。 或domain.sk假裝為domain.cz。 它是隨機發生的,很難調試。 通常,我可以從Google網站站長工具中看到它。 重新啟動apache時一切正常。

有誰知道會導致這種奇怪行為的原因?

這是我的配置httpd.conf:

ServerRoot "/home/me/webapps/domain/apache2"

LoadModule dir_module        modules/mod_dir.so
LoadModule env_module        modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module       modules/mod_mime.so
LoadModule rewrite_module    modules/mod_rewrite.so
LoadModule setenvif_module   modules/mod_setenvif.so
LoadModule wsgi_module       modules/mod_wsgi.so

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
KeepAlive Off
Listen 53696
SetEnvIf X-Forwarded-SSL on HTTPS=1


MaxSpareThreads 10
MinSpareThreads 2
ServerLimit 3
ThreadsPerChild 10

WSGIPythonPath /home/me/webapps/domain:/home/me/webapps/domain/lib/python2.6/site-packages


NameVirtualHost *
<VirtualHost *>
    ServerName domain.cz
    ServerAlias www.domain.cz

    CustomLog /home/me/logs/user/domain/access_com.log combined
    ErrorLog /home/me/logs/user/domain/error_com.log

    WSGIDaemonProcess domain_cz processes=3 python-path=/home/me/webapps/domain:/home/me/webapps/domain/lib/python2.6 threads=2
    WSGIScriptAlias / /home/me/webapps/domain/apache2/conf/cz.wsgi

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.domain\.cz$ [NC]
    RewriteRule ^/(.*)$ http://domain1.cz/$1 [R=301]
</VirtualHost>

<VirtualHost *>
    ServerName domain.sk
    ServerAlias www.domain.sk

    CustomLog /home/me/logs/user/domain/access_sk.log combined
    ErrorLog /home/me/logs/user/domain/error_sk.log

    WSGIDaemonProcess domain_sk python-path=/home/me/webapps/domain:/home/me/webapps/domain/lib/python2.6 threads=3
    WSGIScriptAlias / /home/me/webapps/domain/apache2/conf/sk.wsgi

    RewriteEngine on
    RewriteCond %{HTTP_HOST} slavne-domain\.sk$ [NC,OR]
    RewriteCond %{HTTP_HOST} slavnedomain\.sk$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^www\.domain\.in$ [NC]
    RewriteRule ^/(.*)$ http://domain.in/$1 [R=301]
</VirtualHost>

<VirtualHost *>
    ServerName www.microsite.cz
    ServerAlias microsite.cz

    CustomLog /home/me/logs/user/domain/access_cz_laska.log combined
    ErrorLog /home/me/logs/user/domain/error_cz_laska.log

    WSGIDaemonProcess domain_cz_micro python-path=/home/me/webapps/domain:/home/me/webapps/domain/lib/python2.6 threads=3
    WSGIScriptAlias / /home/me/webapps/domain/apache2/conf/cz_micro.wsgi

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^domain-o-lasce\.net$ [NC]
    RewriteRule ^/(.*)$ http://www.domain-o-lasce.net/$1 [R=301]
</VirtualHost>

這是我的wsgi腳本的示例:

import os
import sys

from django.core.handlers.wsgi import WSGIHandler

os.environ['DJANGO_SETTINGS_MODULE'] = 'domain.settings.cz'
# or domain.settings.sk or domain.settings.cz_micro 

application = WSGIHandler()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM