Django 如何从Amazon Elastic Beanstalk中删除一些Apache设置?
我对弹性豆茎有一个奇怪的问题。我将Django项目部署到自动缩放EC2实例 在Django 如何从Amazon Elastic Beanstalk中删除一些Apache设置?,django,apache,amazon-web-services,amazon-elastic-beanstalk,Django,Apache,Amazon Web Services,Amazon Elastic Beanstalk,我对弹性豆茎有一个奇怪的问题。我将Django项目部署到自动缩放EC2实例 在.ebextensions目录中,我有一个python.config文件,末尾有以下几行: option_settings: "aws:elasticbeanstalk:application:environment": DJANGO_SETTINGS_MODULE: "myapp.settings_eb_staging" "PYTHONPATH": "/opt/python/current/app
.ebextensions
目录中,我有一个python.config
文件,末尾有以下几行:
option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: "myapp.settings_eb_staging"
"PYTHONPATH": "/opt/python/current/app/django-myapp:$PYTHONPATH"
"aws:elasticbeanstalk:container:python":
WSGIPath: myapp/wsgi.py
NumProcesses: 3
NumThreads: 20
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "myapp/static/"
"/favicon.ico": "myapp/static/site/img/favicon.ico"
当我用
$ eb deploy
部署过程创建了这个Apache配置,可以在/etc/httpd/conf.d/wsgi.conf
上找到:
Alias /favicon.ico /opt/python/current/app/myapp/static/site/img/favicon.ico
<Directory /opt/python/current/app/myapp/static/site/img/favicon.ico>
Order allow,deny
Allow from all
</Directory>
Alias/favicon.ico/opt/python/current/app/myapp/static/site/img/favicon.ico
命令允许,拒绝
通融
这显然是错误的,因为favicon.ico是一个文件,而不是一个目录
因此,我尝试从python.config
文件中删除最后一行:
“/favicon.ico”:“myapp/static/site/img/favicon.ico”
然后重新部署项目
问题是Apache指令停留在那里。我还试图手动删除该指令,但在下一次部署之后,它再次出现。我甚至尝试重建环境,但它仍然创建了错误的Apache配置指令
我怎样才能摆脱它呢?事实证明,
wsgi.conf
配置文件可以在.ebextensions/python.config
文件中被覆盖。这就是我所做的:
eb SSH
将SSH连接到EC2实例,并使用cat/etc/httpd/conf.d/wsgi.conf
获取wsgi.conf
的内容.ebextensions/wsgi.conf
,并将上一步的内容复制到那里。删除关于静态目录和favicon的Apache指令.ebextensions/python.config
并添加一个命令,将wsgi.conf
复制到/tmp/
目录(可能在部署过程中使用):
eb deploy
部署base.html
模板中添加其完整路径:
<link rel="shortcut icon" href="{{ STATIC_URL }}site/img/favicon.ico" />
事实证明,
wsgi.conf
配置文件可以在.ebextensions/python.config
文件中被覆盖。这就是我所做的:
eb SSH
将SSH连接到EC2实例,并使用cat/etc/httpd/conf.d/wsgi.conf
获取wsgi.conf
的内容.ebextensions/wsgi.conf
,并将上一步的内容复制到那里。删除关于静态目录和favicon的Apache指令.ebextensions/python.config
并添加一个命令,将wsgi.conf
复制到/tmp/
目录(可能在部署过程中使用):
eb deploy
部署base.html
模板中添加其完整路径:
<link rel="shortcut icon" href="{{ STATIC_URL }}site/img/favicon.ico" />
您只需将自己的wsgi.conf(httpd conf)复制到父目录,这样您的文件将被使用,而不是默认文件
container_commands:
03_wsgireplace:
command: 'cp . ebextensions/wsgi.conf ../wsgi.conf'
您只需将自己的wsgi.conf(httpd conf)复制到父目录,这样就可以使用您的文件而不是默认文件
container_commands:
03_wsgireplace:
command: 'cp . ebextensions/wsgi.conf ../wsgi.conf'