【问题标题】:nginx and monit web interface - how to have monit on domain.com/monit versus domain.comnginx 和监控 web 界面 - 如何在 domain.com/monit 与 domain.com 上进行监控
【发布时间】:2012-02-01 11:58:16
【问题描述】:

我在我的 ec2 实例上使用 monit,我是 nginx 的新手。下面是我的 nginx 配置文件:

server {
  listen 80;
  server_name 127.0.0.1;
  location / {
    proxy_pass 127.0.0.1:2812;
    proxy_set_header Host $host;
  }
}

所以..如果我去 domain.com 我会看到 monit。如何修改上面的代码,我可以在 domain.com/monit 上看到 monit?

谢谢

【问题讨论】:

    标签: nginx monit


    【解决方案1】:

    请试试这个:

    server {
      listen 80;
      server_name 127.0.0.1;
    
      location /monit/ {
        proxy_pass http://127.0.0.1:2812;
        proxy_set_header Host $host;
      }
    
    }
    

    请阅读更多here 关于指令位置在 nginx 中的工作原理

    【讨论】:

    • 我应该创建目录 /usr/local/nginx/html/monit 吗?
    • 如果我不添加目录,当我运行 etc/init.d/nginx 时出现此错误.conf:61
    • 只有当我在 proxy_pass 的 URI 中添加尾部正斜杠 (/) 时,这才对我有用,如下所示:proxy_pass http://127.0.0.1:2812/;
    • @DimitrySandalov 的答案也应该包含在这个答案中。
    • 但是,如果设置了 monit 以保持 nginx 正常运行,这似乎很奇怪
    【解决方案2】:

    Monit 的wiki 有一篇文章如何使用 Nginx 进行配置。

    这是我的/etc/nginx/conf.d/monit.conf

    server {
        listen   80;
        server_name  my.server.name;
    
        location /monit/ {
                allow 127.0.0.1;
                allow 192.0.0.0/8;
                deny all;
    
                proxy_pass http://127.0.0.1:2812;
                proxy_set_header Host $host;
                rewrite ^/monit/(.*) /$1 break;
                proxy_ignore_client_abort on;
        }
    }
    

    【讨论】:

      【解决方案3】:

      Sergei 已经正确回答了您的直接问题。我认为还值得注意的是,仅使用子域可能会更干净:

      server {
        listen 80;
        server_name monit.domain.com;
        location / {
          proxy_pass 127.0.0.1:2812;
          proxy_set_header Host $host;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-16
        • 2015-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多