グレイログインスタンスのnginxに基づいてhttpからhttpsへのリバースプロキシを構築したいと思います。たとえば、URLがgraylog.domain.localであるとします。 Graylogはssl暗号化接続を提供せず、ポート9000を介した標準のhttpのみを提供します。これに関する注意点は、GraylogがURLを呼び出すことです http://graylog.domain.local:9000/api / =。
だから私が達成したいのはこれです:
これは私の設定です。ウェブページを開くのは良さそうです。 WebサイトはSSLで保護され、正しく読み込まれます。残念ながら、Graylogは、到達できないというエラーで私に挨拶します http://10.32.0.109:9000/api/ 。
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name graylog.domain.local;
location / {
proxy_pass http://localhost:9000/;
proxy_set_header Host $Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
}
ssl_certificate /etc/ssl/graylog.domain.local.crt;
ssl_certificate_key /etc/ssl/graylog.domain.local.pem;
}
server {
listen 80;
listen [::]:80;
server_name graylog.domain.local;
location /api {
}
location / {
return 301 https://$Host$request_uri;
}
}
Loaction/apiをhttpsへのリダイレクトから除外するにはどうすればよいですか?
Graylogドキュメント のどこかに埋もれている問題の解決策を見つけました。 nginx構成を完全にコピーし、80-> 443のリダイレクトを追加しました。これで、次のようになり、期待どおりに機能します。
server {
listen 443 ssl;
server_name graylog.domain.local;
ssl_certificate /etc/ssl/graylog.domain.local.crt;
ssl_certificate_key /etc/ssl/graylog.domain.local.pem;
location /
{
proxy_set_header Host $http_Host;
proxy_set_header X-Forwarded-Host $Host;
proxy_set_header X-Forwarded-Server $Host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL https://$server_name/api;
proxy_pass http://127.0.0.1:9000;
}
}
server {
listen 80;
listen [::]:80;
server_name graylog.domain.local;
location / {
return 301 https://$Host$request_uri;
}
}
設定は基本的に正しいですが、1つだけ例外があります。ローカルホストへの_proxy_pass
_を_location /api {}
_内のポートtcp/9000に忘れました。
おそらくrewrite ^/api/(.*)$ /$1 break
行も追加する必要があります。