このガイドでは、Ubuntu 20.04でnginxを使用する方法、つまりnginxをインストールし、仮想サイトにサービスを提供するようにnginxを構成する方法について説明します。
Nginxのインストール
ローカルパッケージインデックスを更新して、最新のパッケージリストにアクセスできるようにします
sudo apt update
nginxをインストールする
sudo apt install nginx
ファイアウォールの更新
利用可能なufwアプリのリスト:
sudo ufw app list
サンプル出力:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
リストされているNginxプロファイル:
-
Nginx Full
– http –80とhttps–443の両方 -
Nginx HTTP
–httpトラフィック80のみ -
Nginx HTTPS
–httpsトラフィックのみ443– TLS/SSL暗号化トラフィック
必要なプロファイルを有効にします-この場合はhttpとhttpsの両方:
sudo ufw allow 'Nginx Full'
変更を確認する
sudo ufw status
上記のコマンドは、許可されているトラフィックを出力します。
nginxの構成
インストールされているバージョンを確認する
sudo apt list --installed | grep nginx
systemdサービスを確認する
sudo systemctl status nginx
nginxが実行されていることを示すこの出力が表示されるはずです
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-07-30 14:07:33 UTC; 2min 42s ago
Docs: man:nginx(8)
Main PID: 4684 (nginx)
Tasks: 5 (limit: 9257)
CGroup: /system.slice/nginx.service
├─4684 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─4685 nginx: worker process
├─4686 nginx: worker process
├─4687 nginx: worker process
└─4688 nginx: worker process
Jul 30 14:07:33 frhb64566ds systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 30 14:07:33 frhb64566ds systemd[1]: Started A high performance web server and a reverse proxy server.
再起動後もnginxサービスが常に実行されていることを確認するには、次のsystemndコマンドを使用して有効にします。
sudo systemctl enable nginx
これらの他のsystemdコマンドを使用してnginxを管理できます:
# To start the service
sudo systemctl start nginx
# To restart the service
sudo systemctl restart nginx
# To reload the service config
sudo systemctl reload nginx
# To stop the service config
sudo systemctl restart nginx
# To disable the service config
sudo systemctl restart nginx
nginxが実際に実行されて到達可能であることを確認するには、次のコマンドを使用します:
curl http://server_ip/
ここで、server_ip
サーバーのIPです。何らかの理由でサーバーのパブリックIPがわからない場合は、これを使用して確認してください。
curl -4 icanhazip.com
次に:
curl http://178.170.10.54/
デフォルトのnginxページを取得する必要があります。
単純な静的ページnginxを提供する
nginxで静的ページを提供する例を見てみましょう。静的ページはhtmlとcssであり、サーバー側のレンダリングは必要ありません。サンプルドメインyour.domain.com
を使用します 私たちの場合。
手順:
-
静的コンテンツを保存するディレクトリを作成します(
/var/www/your.domain.com
を使用します) )sudo mkdir -p /var/www/your.domain.com
-
作成したディレクトリに現在のユーザーがアクセスできることを確認します
sudo chown -R ${USER}:${USER} /var/www/your.domain.com sudo chmod -R 755 /var/www/your.domain.com
-
ディレクトリ(
/var/www/your.domain.com/index.html
)にサンプルファイルを追加します )cat > /var/www/your.domain.com/index.html <<EOF <html> <head> <title>Hola from your.domain.com!</title> </head> <body> <h1>Hey!</h1> <p>Our site <i>your.domain.com</i> is working as expected.</p> </body> </html> EOF
-
ディレクトリ
/etc/nginx/conf.d
にnginx構成を作成します ここで、nginxは、提供時に含める構成を検索します。ファイル/etc/nginx/conf.d/your.domain.com.conf
を作成します 必要なコンテンツを含む。
次のコマンドを使用します:
cat > /etc/nginx/conf.d/your.domain.com.conf <<EOF
server {
listen 80;
server_name your.domain.com;
root /var/www/your.domain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
EOF
-
テストして、nginxファイルのいずれにも構文エラーがないことを確認します
sudo nginx -t
-
エラーがない場合は、nginxを再起動して構成を再読み込みします
sudo systemctl restart nginx
-
ドメインがサーバーに到達できるようにするには、DNS構成を編集して、サイトのAレコードが
your.domain.com
であることを確認します。 サーバーIPを指しています。
これで、サイトが稼働しているはずです。 http://your.domain.com
にアクセスして確認しますNginxの重要なNginxファイルとディレクトリ
-
/var/www/html
:これはWebコンテンツディレクトリです。これには、ファイルindex.nginx-debian.html
のデフォルトのページコンテンツが含まれています 。そのページは、specifixサーバーホストが定義されていない場合にレンダリングされます。 -
/etc/nginx
:これにはすべてのnginx構成ファイルが含まれています。 -
/etc/nginx/nginx.conf
:これはメインのグローバルnginx構成ファイルです -
/etc/nginx/sites-available/
:サイトごとのサーバーブロックを保存できるディレクトリ。 Nginxは、sites-enabled
にリンクされていない限り、このディレクトリにある構成ファイルを使用しません。 ディレクトリ。通常、すべてのサーバーブロック構成はこのディレクトリで行われ、他のディレクトリにリンクすることで有効になります。 -
/etc/nginx/sites-enabled/
:有効なサイトごとのサーバーブロックが保存されているディレクトリ。通常、これらは、sites-availableディレクトリにある構成ファイルにリンクすることによって作成されます。 -
/etc/nginx/snippets
:このディレクトリには、Nginx構成の他の場所に含めることができる構成フラグメントが含まれています。繰り返し可能な構成セグメントは、スニペットにリファクタリングするのに適しています。 -
/var/log/nginx/access.log
:Nginxが別の方法で実行するように構成されていない限り、Webサーバーへのすべてのリクエストはこのログファイルに記録されます。 -
/var/log/nginx/error.log
:Nginxエラーはすべてこのログに記録されます。