
Ubuntu Server 22.04 LTSでnginxリバースプロキシを設定しました。Abacusウェブアプリケーションは、https://abacus.contoso.comインターネットから。内部サーバー名は srv06 です。現在の構成は次のようになります (基本的には Abacus の公式テンプレートです)。
server {
listen 443 ssl;
server_name abacus.contoso.com;
ssl_certificate /etc/nginx/ssl_certs/cert.pem;
ssl_certificate_key /etc/nginx/ssl_certs/cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
resolver 127.0.0.53;
proxy_pass https://abacus.contoso.com:40001$uri$is_args$query_string;
proxy_redirect https://abacus.contoso.com:40001/ https://$host/;
proxy_set_header Host abacus.contoso.com;
client_max_body_size 0;
proxy_connect_timeout 90s;
proxy_send_timeout 90s;
proxy_read_timeout 90s;
send_timeout 90s;
}
}
ウェブサイトはアクセス可能で、ログインも基本的に機能します。問題は、ウェブサイト自体で起動されるウェブアプリケーションです。ログイン後、.abalinkファイルがダウンロードされ、ソフトウェアAbaClientで起動されます。このAbaClientは、URIでサーバーにアクセスしようとします。https://abacus.contoso.comプロキシ経由 - これは正しい - ですが、nginx または内部サーバーがドメイン名ではなく内部サーバー名 srv06 を使用して要求に応答しているようです。これは、私が受け取ったエラー メッセージです: 「Abacus サーバーへの GET 要求が失敗しました (srv06)」。
コードに何か欠けているところがあるのでしょうか? 私は nginx を使い始めたばかりなので、誰かが助けてくれることを願っています。
ありがとう!
答え1
シンプルなデフォルトのプロキシ設定ではなく、この複雑すぎるプロキシ設定を使用する理由がわかりません。
これを試して:
location / {
proxy_pass https://abacus.contoso.com:40001;
proxy_set_header Host abacus.contoso.com;
client_max_body_size 0;
proxy_connect_timeout 90s;
proxy_send_timeout 90s;
proxy_read_timeout 90s;
send_timeout 90s;
}