Ownedmedia ウェブ制作に役立つコンテンツを発信中!

サーバー構築 2020.08.16

CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#8:その他サーバー内での設定)

Tags: ,,,,

これまでの記事ではウェブサーバーやデータベースサーバーの構築、またSSHの設定やSSL対応など、ウェブサイトを運用するためのサーバー環境を構築する方法をまとめてきましたが、それ以外にも必要となる設定がいくつかあります。今回はそのような設定についてまとめていきます。

 

(こちらの記事も合わせてどうぞ)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#1:サーバーの契約・OSのインストール)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#2:SSH・公開鍵認証の設定)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#3:ウェブサーバー・PHPのインストール)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#4:DBサーバー・phpMyAdminのインストール)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#5:バーチャルホストの設定)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#6:リバースプロキシサーバーの導入)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#7:SSL証明書のインストールと設定)

 

1. 外部SMTPサーバーへの転送設定

これまでVPSサーバーの環境構築についてまとめてきましたが、メールサーバーの構築については触れていません。実際にメールサーバーの構築は他のものと比べてもハードルが高く、メールの到着率なども考えると自前で準備するよりは、レンタルサーバーなどでのメールサーバーを利用する方が確実ですね。そのため外部のメールサーバーを利用する形になりますが、それにはいくつか設定が必要となります。その前に、まずはDNS設定にてドメインのMXレコードに外部のメールサーバーのホスト名を登録しておきます。

 

続いて、「postfix」を下記コマンドでインストールしていきます。

# dnf install -y postfix
Installed:
  ..............
Complete!

 

postfixの起動と自動起動設定を行います。

# systemctl restart postfix
# systemctl enable postfix

 

(補足)postfix起動時に下記のエラーが出る場合には「/etc/」配下にある「hosts」ファイルを下記のように変更します。

postfix[60813]: fatal: parameter inet_interfaces: no local interface found for ::1

 

IPv6である「::1」の部分を丸ごとコメントアウトするような形での編集が加わります。

【/etc/hosts】

// 変更前
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
↓
// 変更後
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

 

さらに下記コマンドでmailコマンドの拡張機能をインストールしていきます。

# dnf install -y mailx
Installed:
  ..............
Complete!

 

「.mailrc」という名前のファイルをルートディレクトリに作成し、下記の設定を記述していきます。

【.mailrc】

set smtp=smtp://メールサーバーホスト名:SMTP送信ポート
set smtp-auth-login
set from=送信元メールアドレス
set smtp-auth-user=SMTPユーザー名
set smtp-auth-password=SMTPパスワード

 

これで下記コマンドでメールの送信テストを行います。本文用のテキストファイルは別途テキストファイルなどで用意しておきます。その内容で指定した送信先にメールが届けばOKです。

# mail -s "件名" "送信先メールアドレス" < 本文用テキストファイルのパス

 

これでPHPのsendmailなどでメール送信をする際に、外部のメールサーバー経由でメールを送信することができるようになります。

 

2. HTTP/2への対応

HTTP/2(Hypertext Transfer Protocol version 2)とはHTTP通信のバージョンで、従来のバージョンよりもさらに高速で通信できることが特長です。デフォルトではHTTP/1.1のバージョンになっているため、利用するためには設定が必要となります。

 

まずは、HTTP/2の利用が可能な環境か確認していきます。OpenSSLとNginxのバージョンを確認し、HTTP/2に対応しているかをチェックします。OpenSSLはバージョンが1.0.2以上、Nginxのモジュール一覧の中に「–with-http_v2_module」があるかどうかを見ていきます。

# openssl version
OpenSSL 1.1.1c FIPS
# nginx -V
  ..............
  TLS SNI support enabled
  configure arguments: …………--with-http_v2_module

 

対応していることが確認できたら、続けて「/etc/nginx/conf.d/」に移動し、Nginxの設定ファイルにHTTP/2の設定を追記します。念の為あらかじめバックアップをとっておきます。

# /etc/nginx/conf.d/
# cp reverse_proxy.conf reverse_proxy.conf.copy
# vim reverse_proxy.conf

 

HTTP/2に対応させるためには、 下記のように「http2」と追記するだけでOKです。簡単ですね。

【etc/nginx/conf.d/reverse_proxy.conf】

// 変更前
server {
  listen 443 ssl;
  ..............
↓
// 変更後
server {
  listen 443 http2 ssl;
  ..............

 

設定終了後はNginxをリロードさせて設定を反映させていきます。

# nginx -s reload

 

これでHTTP/2に対応できるようになりました。ブラウザのデベロッパーツールなどで、HTTP/2での通信ができているかを確認してみましょう。プロトコルの表記が「h2」とあればOKです。

 


 

今回はその他で必要となるサーバー設定についてまとめていきました。要件によっては不要な場合もありますが、基本的なウェブサイトを公開するためにはいずれも必須になってくるのではないでしょうか。次回記事では引き続きサーバーに入れておきたいツールなどについてまとめていきたいと思います。

この記事を書いた人

オガワ シンヤ

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?