我想举办它使用Debian的5同一服务器下的几个场所,说我有site1,site2
和site3
,并承担我的IP是155.55.55.1:
site1: 155.55.55.1:80 , script at /opt/django/site1/
site2: 155.55.55.1:8080, script at /opt/django/site2/
site3: 155.55.55.1:8090, script at /opt/django/site3/
这是我的默认Apache:
<VirtualHost *:80>
ServerName /
ServerAlias */
DocumentRoot /opt/django/site1/
LogLevel warn
WSGIScriptAlias / /opt/django/site1/apache/django.wsgi
Alias /media /opt/django/site1/media/statics
Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/usr/share/phpmyadmin"
ServerName /phpmyadmin
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options Indexes FollowSymLinks
AllowOverride None
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
这是我的wsgi配置site1
,位于/opt/django/site1/apache/django.wsgi:
import os, sys
import django.core.handlers.wsgi
sys.path.append('/opt/django')
sys.path.append('/opt/django/site1')
os.environ['DJANGO_SETTINGS_MODULE'] = 'site1.settings'
application = django.core.handlers.wsgi.WSGIHandler()
如何添加site2
和site3
,它们是基于Django
的网站,将像一样提供服务site1
?
你的ServerName / ServerAlias指令错误。ServerName应该是主机名。你可能应该删除ServerAlias。
然后只需执行明显且重复的VirtualHost / Listen指令,只需更改文件系统中脚本的端口号和位置即可。
最后,不要将DocumentRoot设置为你的Django代码所在的位置,因为如果你填充Apache配置,它很容易意外地暴露你的源代码以供下载。因此,只需从VirtualHost for Django网站删除DocumentRoot指令即可。
Listen 80
<VirtualHost *:80>
ServerName www.example.com
WSGIScriptAlias / /opt/django/site1/apache/django.wsgi
Alias /media /opt/django/site1/media/statics
Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media
<Directory opt/django/site1/apache>
Order allow,deny
Allow from all
</Directory>
<Directory /home/myuser/Django-1.1/django/contrib/admin/media>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Listen 8080
<VirtualHost *:8080>
ServerName www.example.com
WSGIScriptAlias / /opt/django/site2/apache/django.wsgi
Alias /media /opt/django/site2/media/statics
Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media
<Directory opt/django/site2/apache>
Order allow,deny
Allow from all
</Directory>
<Directory /home/myuser/Django-1.1/django/contrib/admin/media>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Listen 8090
<VirtualHost *:8090>
ServerName www.example.com
WSGIScriptAlias / /opt/django/site3/apache/django.wsgi
Alias /media /opt/django/site3/media/statics
Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media
<Directory opt/django/site3/apache>
Order allow,deny
Allow from all
</Directory>
<Directory /home/myuser/Django-1.1/django/contrib/admin/media>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我还添加了缺少的Directory指令,以允许访问静态文件。但是,你应该查看路径。
问题内容: 我想在同一主机中部署两个不同的django应用程序:第一个将对应于URL / site1,第二个将对应于URL / site2。这是我的配置: 这也是这两个应用程序的wsgi.py文件 现在,这是我的问题。当我转到服务器时,假设http://app1.sites.gr/site1有时加载了site1,而有时加载了site2!访问http://app1.sites.gr/site2时也是
我想在同一个主机上部署两个不同的django应用程序:第一个对应于url/site1,第二个对应于url/site2。这是我的配置: 这是两个应用程序的wsgi.py文件 现在,我的问题来了。当我转到服务器时,假设http://app1.sites.gr/site1它有时加载site1,有时加载site2!!!!我访问时也是如此http://app1.sites.gr/site2 ... 有时我会
问题内容: 有人可以解释守护程序模式下的apache mod_wsgi和线程模式下的django fastcgi之间的区别。我认为它们都使用线程进行并发。 假设我将nginx用作Apache mod_wsgi的前端。 更新: 我正在比较在fastemon中内置的django(./manage.py method = threaded maxchildren = 15)和mod_wsgi在“守护程序
如果你使用 Apache web 服务器,请考虑使用 mod_wsgi 。 注意 请确保在任何 app.run() 调用之前,你应该把应用文件放在一个 if __name__ == `__main__`: 块中或移动到独立的文件。只确保它没被调用是 因为这总是会启动一个本地的 WSGI 服务器,而当我们使用 mod_wsgi 部署应用 时并不想让它出现。 安装 mod_wsgi 如果你还没有安装过
If you are using the Apache webserver you should consider using mod_wsgi. Installing mod_wsgi If you don’t have mod_wsgi installed yet you have to either install it using a package manager or compile
我读了很多文章,但仍然不知道我遗漏了什么。我正在运行一个来自virtualenv的django网站。这是我的配置文件。网站地址被替换为 配置 这是我的WSGI。py文件,没有任何更改,以前从未更改过 Python版本 我的virtualenv python版本是3.9。5默认的Google VM python版本是3.6。9 Python安装库 我安装了apache modwsgi以及 错误日志文