我在 Grape API 应用程序的上下文中运行 Nginx、Sidekiq Monitor。我的 Gemfile 中有 Sinatra。我还设置了一个 rake 任务来运行 Sidekiq 监视器:
namespace :sidekiq do
task :monitor do
require 'sidekiq/web'
app = Sidekiq::Web
app.set :environment, :production
app.set :bind, '0.0.0.0'
app.set :port, 9494
app.run!
end
end
我发现这是在没有 Rails 的情况下运行 sidekiq 的方法。接下来,我设置 Nginx 以在端口 9494 上从 Web 向 Sidekiq 发送请求:
server {
server_name localhost;
listen 9494;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location /sidekiq {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
# pass to the upstream unicorn server mentioned above
proxy_pass http://unicorn;
}
}
接下来,我运行 rake 任务来启动 sidekiq 监视器。最后,我转到 Web 服务器的 IP 地址并使用该端口尝试访问 sidekiq 监视器。不幸的是,我收到一个错误“网页不可用”。
查看 nginx 日志我什至没有在访问日志中获得条目,就像我的请求甚至击中 nginx 一样。我尝试了许多 server_name 条目(IP 地址、本地主机等)。似乎没有任何效果。如果我做:
curl -vvv http://localhost:9494
我得到了正确的 HTML 输出到终端。所以我相当有信心这是来自服务器的请求的问题 -> nginx -> unicorn。
关于我还能检查什么的任何想法?
更新: 我尝试从 nginx 中删除配置并使用 IP 和端口访问 sidekiq 监视器,但没有成功。我还从配置中删除了 app.set :port, 9494 并尝试过,但没有成功。
谢谢