私はWebサーバーとOpenVPNアクセスサーバー(独自のWebインターフェースを含む)を備えた小規模ネットワークを持っています。パブリックIPが1つだけで、サブドメインをWebサーバー(例:website1.domain.com、website2.domain.com)のWebサイトにポイントし、サブドメインvpn.domain.comをWebインターフェースサーバーにポイントしたいと思います。 OpenVPNアクセス用。
インターネット検索の最後に最善の方法は、プロキシサーバーを設定することでした。 NGINXは「proxy_pass」機能でこれを行うことができるようです。 HTTPバックエンドURL(Webサイト)で動作するようにしましたが、HTTPSを強制するため、OpenVPNアクセスサーバーのWebインターフェイスでは機能しません。私はHTTPSに満足しており、WebサーバーでホストされているWebサイトにHTTPSを好みます。デフォルトは自己署名証明書です。すでにインストールされているので、自己署名証明書も使用したいと思います。他のウェブサイトの場合。
自己署名証明書をどのように「受け入れる」のですか?バックエンドサーバーの場合?証明書を生成する必要があることがわかりました。 NGINXリバースプロキシ設定でこれを定義しますが、これがどのように機能するかを理解していません。たとえば、OpenVPNサーバーにはすでにSSL証明書がインストールされています。以下からOpenVPN Webインターフェイスにアクセスできます。https://direct.ip.address.here/adminしかし、Chromeを介してWebインターフェイスにアクセスしようとすると、「このサイトは安全な接続を提供できません」ページが表示されます。
私のNGINXリバースプロキシ設定:
server {
listen 443;
server_name vpn.domain.com;
ssl_verify_client off;
location / {
# app1 reverse proxy follow
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://10.128.20.5:443;
proxy_ssl_verify off;
}
access_log /var/log/nginx/access_log.log;
error_log /var/log/nginx/access_log.log;
}
server {
listen 80;
server_name website1.domain.com;
location / {
# app1 reverse proxy follow
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.128.11.20:80;
}
access_log /var/log/nginx/access_log.log;
error_log /var/log/nginx/access_log.log;
}
近くにアイデアがあります... おそらくNGINXは(現在または長期的に)正しいツールではないかもしれません。証明書を回復できるとします。現在経験している問題は、トラフィックを処理するためにより多くのバックエンドWebサーバーが必要であることです。 NGINXプロキシも拡張できますか?クラスターやロードバランサーが好きですか?まったく異なるツールを見つける必要がありますか?
答え1
443 サーバーブロックが SSL 要求に対して構成されていません。ディレクティブssl
に追加して構成する必要があります。listen
ssl_certificate
ssl_certificate_key
例えば
server {
listen 443 ssl;
ssl_certificate /path/to/ssl/certificate.pem;
ssl_certificate_key /path/to/ssl/certificate.key;
# ...
これらの設定やその他のTLS / SSL関連設定の詳細については、こちらをご覧ください。http://nginx.org/en/docs/http/configuring_https_servers.html。
現在経験している問題は、トラフィックを処理するためにより多くのバックエンドWebサーバーが必要であることです。 NGINXプロキシも拡張できますか?
NGINXは垂直方向にうまく拡張されます(サーバーのリソースの増加)。水平方向のスケーラビリティまたは高可用性のために、より多くのNGINXサーバーを追加し、パブリックIPアドレスが1つしかない場合は、管理VIP(仮想IP)が必要です。このkeepalived
サービスを使用してVIPを管理できます。しかし、小規模ネットワークの場合、これは必要ないと思います。