
サーバー仮想マシン(VM1、VM2)をホストするためにESXi(s1)を使用することを除いて、一般的なマルチサーバー1 IPの問題があります。私が達成したいことは次のとおりです
誰かが行ったときexample.com彼らは得るS1-VM1私のブログ、ウェブサイト、すべてのジャズをホストしています。
しかし、彼らが行くときcode.example.com彼らは得るS1-VM2私のコードの人気のあるgitlabだけをホストしています。
可変的な:
- VM1はCentOSに基づいており、VM2はUbuntuサーバーに基づいています。
- Ext IP を使用するルータが DHCP を処理しています。
このようなタスクをどこで開始するのか完全にはわかりませんので、このタスクをどこで読んだり、行ったり、開始したりできるかを教えてください。これはCentOSのリバースプロキシApache実装と同じくらい簡単かもしれませんか?おそらく次のようなものこれ?
修正する:
だから部分的に見つけました。次の設定は、からexample.com
すべてのトラフィックをリダイレクトしているようですhttps://sub.example.com
。休日でサーバーで遊ぶ時間が多いので、誰かが詳しく見て、なぜこのようなことが起こるのかフィードバックを与えて調整を提案してくれたら嬉しいです。
<VirtualHost 192.0.2.1:80>
ServerName sub.example.com
Redirect permanent / http://sub.example.com/
</VirtualHost>
<VirtualHost 192.0.2.1:443>
ServerName sub.example.com
ErrorLog logs/sub.example.com-error_log
CustomLog logs/sub.example.com-access_log combined
SSLEngine On
SSLCertificateFile /etc/httpd/conf.d/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/server.key
#SSLCACertificateFile /etc/httpd/conf.d/ssl/rapidssl.crt
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://192.168.1.252/
ProxyPassReverse / http://192.168.1.252/
</VirtualHost>
**更新2:**現在発生しているエラーはSSLに関連しています。上記の設定を次のように修正しました。
<VirtualHost 192.0.2.1:80>
ServerName sub.example.com
Redirect permanent / http://sub.example.com/
ProxyPass / http://192.168.1.252
ProxyPassReverse / http://192.168.1.252
</VirtualHost>
<VirtualHost 192.168.1.252:443>
ServerName sub.example.com
ErrorLog logs/sub.example.com-error_log
CustomLog logs/sub.example.com-access_log combined
SSLEngine off
SSLCertificateFile /etc/httpd/conf.d/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/server.key
#SSLCACertificateFile /etc/httpd/conf.d/ssl/rapidssl.crt
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://192.168.1.252/
ProxyPassReverse / http://192.168.1.252/
</VirtualHost>
私は何も指定しなかったか、一致するRSAキーまたは何も指定しなかったログの直感に基づいてこれを行いました。上記の構成では、パブリックサーバーは要求をsub.example.com
内部サーバーHTTP Webサイトにリダイレクトします。しかし、今、たとえばプロキシエラーなどの操作を実行すると、example.com/blog
他のすべての項目が機能します。
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /blog.
Reason: DNS lookup failure for: 192.168.1.252blog
どんなアイデアがありますか?
答え1
したがって、これにはリバースプロキシを使用する必要があります。リバースプロキシを使用すると、1つの外部IPの背後にある複数のサーバーにアクセスできます。ホストがあり、code
値がでCNAMEレコードが正しく設定されていることを確認してくださいexample.com
。
フォローするこれブーツ、緩い。私のオペレーティングシステムはCentOS 7.1です。
まず、Apache / httpdがインストールされていることを確認してください。すでに存在する場合は、この手順をスキップできます。
sudo yum install httpd
プライマリサーバーで基本設定を実行したら、他のサーバーへのアクセスを有効にします。httpd.conf
リダイレクトするにはファイルを編集する必要があります。
vi /etc/httpd/conf/httpd.conf
実際に機能するには、以下を追加してください。
<VirtualHost *:80>
ServerName code.example.com
ProxyPass / http://S1-VM2:80/
ProxyPassReverse / http://S1-VM2:80/
</VirtualHost>
その後、Apacheサービスを再起動する必要があります。service httpd restart
最後に、Ubuntu Webサーバーを設定する必要があります。ServerName
入力するには、/etc/apache2/sites-available/default
次code.example.com
を実行してWebサーバーを再起動しますservice apache2 restart
。