【发布时间】:2020-11-14 16:12:13
【问题描述】:
我正在尝试在 heroku 上部署一个带有 django 的 python,并配置一个 nginx 反向代理,使其具有像过滤器一样的过滤器,在令牌被检查到第三方 IDP 之前,它不会让请求传递到我的 django 后端。
** 第 1 步 **
我正在按照本教程添加 nginx buildpack:https://elements.heroku.com/buildpacks/hq-mobile/v3-nginx-buildpack
添加 buildpack 并启动应用程序后,我收到以下消息:bin/start-nginx: line 37: bundle: command not found
经过一番挖掘,我注意到需要将一些路径添加到 heroku 应用程序的配置变量中,以便捆绑程序获得所需的依赖项:
所以我添加了以下路径:
heroku config:add GEM_PATH=vendor/bundle/1.9.3
heroku config:set PATH=bin:vendor/bundle/ruby/1.9.3/bin:/usr/local/bin:/usr/bin:/bin
然后是 config/unicorn.rb 文件:
require 'fileutils'
listen '/tmp/nginx.socket'
before_fork do |server,worker|
FileUtils.touch('/tmp/app-initialized')
end
过程文件:
web: bin/start-nginx bundle exec unicorn -c config/unicorn.rb gunicorn -c gunicorn.conf.py MyApp.wsgi
gunicorn.conf.py
# gunicorn.conf
def when_ready(server):
# touch app-initialized when ready
open('/tmp/app-initialized', 'w').close()
bind = 'unix:///tmp/nginx.socket'
workers = 4
即使添加了这个,错误仍然存在。
** 第 2 步 **
一旦正常的 buildpack 就位,我想按照本教程来配置我想要的 nginx:
https://www.nginx.com/blog/validating-oauth-2-0-access-tokens-nginx/
需要什么配置才能让这个 buildpack 在我的情况下工作?
【问题讨论】:
标签: python django heroku bundler buildpack