我正在测试Django并希望它仅响应某些应用程序,例如admin和民意调查(来自教程)。剩下的时间我只想要常规的apache。我能够使用端口转发执行此操作。具体来说,我将httpd.conf修改为:
NameVirtualHost *:8081
和
<VirtualHost *:8081>
DocumentRoot /home/ec2-user/srv/mysite
ServerName <ServerIPAddress>
#ErrorLog /home/ec2-user/testproject/logs/apache_error.log
#CustomLog /home/djangotest/helloworld/logs/apache_access.log combined
WSGIScriptAlias / /home/ec2-user/srv/mysite/apache/wsgi.py
etc...
但是,我想摆脱8081,只是让它在默认端口80上工作?目前,两个mysite:8081 /民意调查/和mysite:8081 / admin /都有效。
如果需要,这是wsgi文件:
import os
import sys
path= '/home/ec2-user/srv/mysite'
if path not in sys.path:
sys.path.append(path)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
编辑: 这是mysite的urls.py(不是民意调查)。
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'mysite.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^polls/', include('polls.urls',namespace = "polls")),
url(r'^admin/', include(admin.site.urls)),
)
这是民意调查的urls.py:
from django.conf.urls import patterns, include, url
from polls import views
urlpatterns = patterns('',
#ex: /polls/
url(r'^$', views.index, name='index'),
#ex: /polls/5
url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
# ex: /polls/5/results/
url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
# ex: /polls/5/vote/
url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)
答案 0 :(得分:2)
更改apache2配置的WSGIScriptAlias部分,如下所示:
WSGIScriptAlias /polls /home/ec2-user/srv/mysite/apache/wsgi.py
此外,由于您计划在服务器上运行多个Django应用程序,而不是使用: os.environ.setdefault(“DJANGO_SETTINGS_MODULE”,“mysite.settings”),请将其更改为:< / p>
os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"
从您的mysite网址中将 r'^民意调查/'更改为 r'^'。你必须这样做,因为apache2将 / polls 别名为django应用程序的 / 请求。 (同样可以解释为什么你必须输入:/ polls / admin)。
您可以阅读更多相关信息here
WSGIDaemonProcess 是部署多个Django应用程序的推荐方法。(你会在堆栈中找到很多例子)。
是的,您可以将上述设置与端口:80 一起使用。
有关详细信息,请参阅此link。