ウェブサーバーは nginx と apache2 の 2 つあります。mail.aboutryansam.com の A レコードと webmail.aboutryansam.com の CNAME があります。mail.aboutryansam.com でホストされている postfix と dovecot メールサーバーと、webmail.aboutryansam.com でホストされている roundcube メールクライアントを設定しようとしています。Ubuntu 18 を実行しています。メールサーバー用に 2 つのディレクトリ /var/www/nginx/mail.aboutryansam.com/ があります。roundcube 用に /var/www/html があります。デフォルトでは、apache2 と nginx は同じポートで実行されるため、ポート 81 を使用するように nginx を変更しました。apache ディレクトリにデフォルトの HTML ページがあり、nginx ディレクトリにカスタム ページを作成しました。mail.aboutryansam.com にアクセスすると、Apache HTML ページが表示されますが、nginx ディレクトリから作業するための conf ファイルがあります。
server {
listen 81;
server_name mail.aboutryansam.com;
location {
root /var/www/nginx/mail.aboutryansam.com
index index.html index.htm;
# proxy_pass http://localhost:3010;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
}
}
Web サーバーの実行に多くの問題があり、サーバー管理の初心者なので、十分に説明できなかったら申し訳ありません。回答していただける場合は、「--verbose」を使用してください。前述したように、私はこの分野の初心者です。
答え1
DNS A レコードはサービスではなく IP アドレスを指します。Apache/nginx などのサービスには、実行されているマシンの IP アドレスとポートでアクセスできます。
入場するとhttp://mail.aboutryansam.comブラウザではデフォルトの HTTP ポートに接続するので80
、198.58.105.140:80
Apache がリッスンしている場所に接続します。server_name
リクエストはすでに Apache に入っているため、この時点では nginx で定義したポートは考慮されません。
ポート 81 でリッスンしているサービスに接続する場合は、これを明示的に指定する必要があります。http://mail.aboutryansam.com:81
:81
URL にこれを含めたくない場合は、次のオプションがあります。
- 設定するリバースプロキシポート80のサーバーのポート81へ -
- 複数のマシン/IPが利用可能な場合は、Apacheとnginxを別々のマシンにバインドして、両方がポート80にバインドできるようにし、それに応じてDNSレコードを変更します。