我的服务器

我的服务器

我想在 Nginx 后面运行 datastax cassandra opscenter。但它不断向所有 URL 添加 opscenter 端口(默认为 8888)。是否有配置设置可以禁用该功能?

这是我的超级简单的 nginx 配置:

server {
  server_name opscenter.hostname.com;

  location / {
    proxy_pass http://127.0.0.1:8888;
  }
}

我是不是做错了什么事?

答案1

通过将 nginx 重定向到 /opscenter 解决了这个问题

location = / {
  rewrite (.*) /opscenter;
}

答案2

您需要创建如下所示的位置:

location / {
    proxy_pass http://127.0.0.1:8888;
    proxy_redirect http://localhost:8888/ /;
    proxy_redirect http://your.host.name:8888/ /;
    proxy_buffering off; 

}

这些行将从 OpsCenter 返回的响应中proxy_redirect去除。8888

更多信息proxy_redirect可以在这里找到http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect

答案3

我尝试了建议的配置和其他配置,但都不适合我。
这是我的用例和我的解决方案。

我的服务器

Nginx 和 OpsCenter 位于两台不同的机器上。与 Nginx 不同,OpsCenter 不能直接从互联网访问。

Nginx 1.4.6 已开启172.132.1.2(公用网络)
OpsCenter 5.2.0 已开启172.132.2.3(专用网络)

Nginx 配置

upstream opscenter {
  server 172.132.2.3:8888;
}

server {
    listen 81 default_server;
    listen [::]:81 default_server ipv6only=on;

    location / {
         proxy_pass http://opscenter;
         proxy_redirect http://$proxy_host:8888/ http://$host:$server_port/;
         proxy_buffering off;
    }

    location ~ /\.ht {
        deny all;
    }
}

相关内容