Я хотел бы запустить datastax cassandra opscenter за Nginx. Но он продолжает добавлять порт opscenter (по умолчанию 8888) ко всем URL-адресам. Есть ли настройка конфигурации, чтобы отключить это или что-то в этом роде?
Вот моя супер-простая конфигурация nginx:
server {
server_name opscenter.hostname.com;
location / {
proxy_pass http://127.0.0.1:8888;
}
}
Может, я что-то делаю не так?
Решил это, добавив перенаправление nginx в / opscenter
location = / {
rewrite (.*) /opscenter;
}
Вам необходимо создать местоположение, подобное следующему:
location / {
proxy_pass http://127.0.0.1:8888;
proxy_redirect http://localhost:8888/ /;
proxy_redirect http://your.host.name:8888/ /;
proxy_buffering off;
}
В proxy_redirect
линии лишат 8888
из ответов, возвращенных OpsCenter.
Подробнее о том, что proxy_redirect
действительно можно найти на http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect
Я пробовал предложенные конфигурации и многое другое, но ни одна из них не сработала.
Вот мой вариант использования и мое решение.
Nginx и OpsCenter находятся на двух разных машинах. В отличие от Nginx, OpsCenter недоступен напрямую из Интернета.
Nginx 1.4.6 включен 172.132.1.2
(общедоступная сеть)
OpsCenter 5.2.0 включен 172.132.2.3
(частная сеть)
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;
}
}