NGINX は、特に静的ファイルの管理やリバース プロキシとして使用される高性能 Web サーバーです。その汎用性のおかげで、NGINX はあらゆる状況で使用できます。このガイドでは、サーバーにインストールする方法と、2 つ以上のドメイン用に構成する方法について説明します。
まず、SSH 接続を介してサーバーに接続します。まだ行っていない場合は、ガイドに従って SSH で安全に接続することをお勧めします。ローカル サーバーの場合は、次のポイントに進み、サーバーのターミナルを開きます。
NGINX のインストール
配布リポジトリを更新して、NGINX の最新バージョンをダウンロードしてください:
$ sudo apt update
次のコマンドを実行して、NGINX パッケージをインストールします:
$ sudo apt install nginx
インストールが完了したら、サービスを起動してシステムにインストールします:
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
ファイアウォールの構成
システムにファイアウォールがある場合は、マシンへの HTTP トラフィックと HTTPS トラフィックを有効にするように設定してください。
UFW ファイアウォールを使用する場合、事前にインストールされた NGINX 用のプロファイルが提供されます。それでは、それらを有効にする方法を見てみましょう。
UFW ファイアウォールにインストールされている利用可能なプロファイルを確認するには、次のコマンドを実行します:
$ sudo ufw app list
次のようなリストが画面に表示されます:
Available applications:
Dovecot IMAP
Dovecot POP3
Dovecot Secure IMAP
Dovecot Secure POP3
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
HTTP (ポート 80) および HTTPS (ポート 443) トラフィックを許可するには、「Nginx Full」プロファイルを使用します。
以下に示すプロフィール情報を確認してください:
$ sudo ufw app info "Nginx Full"
画面上のプロフィールの説明が表示されます:
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
プロファイルを確認したら、プロファイルを有効にする準備が整います:
$ sudo ufw allow in "Nginx Full"
この時点で、NGINX とファイアウォールの構成は完了です。アドレス http://
2 つのドメイン/ウェブサイトを正しく構成する:
以下に、2 つの仮想ホスト (「サーバー ブロック」と呼ばれる) を構成して、2 つの完全に分離した Web スペースを作成する方法を示します。この例では、2 つの架空のドメインを使用します:
www.yourdomain.com
www.yourdomain2.com
両方の A レコードがサーバーのパブリック IP アドレスを指している必要があります。
Web サイトの公開ファイルを保持するために必要なすべてのフォルダーを作成することから始めます。
$ sudo mkdir /var/www
$ sudo mkdir /var/www/yourdomain.com
$ sudo mkdir /var/www/yourdomain.com/htdocs
$ sudo mkdir /var/www/yourdomain.com/logs
$ sudo mkdir /var/www/yourdomain2.com
$ sudo mkdir /var/www/yourdomain2.com/htdocs
$ sudo mkdir /var/www/yourdomain2.com/logs
一時的なコンテンツとして、デフォルトの NGINX ページを各ドメインの htdocs フォルダーにコピーします。
$ sudo cp /usr/share/nginx/html/* /var/www/yourdomain.com/htdocs/
$ sudo cp /usr/share/nginx/html/* /var/www/yourdomain2.com/htdocs/
では、NGINX の実際の構成に進みます。 NGINX は通常、/etc/nginx/conf.d/ ディレクトリ内のすべての .conf ファイルを読み取り、2 つのファイル (ドメインごとに 1 つ) を作成して名前を付けます:
yourdomain_com.conf
yourdomain2_com.conf
お気に入りのテキスト エディタを使用して、次の構成を yourdomain_com.conf ファイルに書き込みます:
server {
listen 80;
server_name yourdomain.com *.yourdomain.com;
root /var/www/yourdomain.com/htdocs;
access_log /var/www/yourdomain.com/logs/access.log main;
error_log /var/www/yourdomain.com/logs/error.log warn;
}
もちろん、yourdomain2_com.conf にも同様の構成を使用する必要があります:
server {
listen 80;
server_name yourdomain2.com *.yourdomain2.com;
root /var/www/yourdomain2.com/htdocs;
access_log /var/www/yourdomain2.com/logs/access.log main;
error_log /var/www/yourdomain2.com/logs/error.log warn;
}
仮想ドメインのファイルのルート フォルダーの設定に加えて、ログ ファイル (アクセスとエラーの両方) のパスを構成する設定もあります。ドメイン。通常、NGINX はすべてのログを /var/log/nginx/ ディレクトリに保存しますが、複数のドメインの場合、結果が混乱する可能性があります。
パスが変更されると、時間の経過とともにログが大きくなりすぎる可能性があります。したがって、最も古い内容を削除するには、ファイルのローテーションを設定する必要があります。そのためには、logrotate ソフトウェアを使用してください。
logrotate 設定に新しいログ ファイルを追加するには、/etc/etc/logrotate.d/nginx ファイルを編集します:
/var/log/nginx/*log {
create 0644 nginx nginx
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
endscript
}
ご覧のとおり、既に /var /log/nginx に NGINX ファイルの構成が存在します。次のように、ファイルの最初の部分を変更して続行します。
/var/log/nginx/*log
/var/www/*/logs/* {
...
}
この変更が行われると、logrotate は /var/www/mydomain.it と /var/www/yourdomain.com (およびその他) の両方のログ フォルダー内のすべてのファイルを管理します。将来追加される可能性のある他のドメインについて心配する必要があります。
完了したら、サービスを再起動して変更を適用します:
$ sudo systemctl reload nginx