在Apache的Sub URI下为Django站点提供服务,可以按照以下步骤进行操作:
/myapp
,则可以添加如下配置:<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
Alias /myapp/static /path/to/django/static
<Directory /path/to/django/static>
Require all granted
</Directory>
Alias /myapp/media /path/to/django/media
<Directory /path/to/django/media>
Require all granted
</Directory>
<Location /myapp>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/myapp/static
RewriteCond %{REQUEST_URI} !^/myapp/media
RewriteRule ^/myapp/(.*)$ /myapp.fcgi/$1 [QSA,L]
</Location>
<Location /myapp.fcgi>
SetHandler "proxy:unix:/path/to/django/myapp.sock|fcgi://localhost/"
</Location>
</VirtualHost>
上述配置中,example.com
是你的域名,/var/www/html
是Apache的默认文档根目录,/path/to/django/static
和/path/to/django/media
分别是Django项目的静态文件和媒体文件的路径,/path/to/django/myapp.sock
是Django项目的Socket文件路径。
ALLOWED_HOSTS
和FORCE_SCRIPT_NAME
参数。例如,如果Sub URI为/myapp
,则可以添加如下配置:ALLOWED_HOSTS = ['example.com']
FORCE_SCRIPT_NAME = '/myapp'
gunicorn
来运行Django项目:gunicorn myapp.wsgi:application --bind unix:/path/to/django/myapp.sock
通过以上步骤,你就可以在Apache的Sub URI下正确地为Django站点提供服务了。用户可以通过访问http://example.com/myapp
来访问Django站点,并且静态文件和媒体文件也能正确加载。
领取专属 10元无门槛券
手把手带您无忧上云