Nginxを使用して静的ファイルサーバーをホストする方法
Nginxは静的ファイルをホストするために使用できるWebサーバーです。このチュートリアルでは、Nginxを使用して静的ファイルサーバーをホストする方法について説明します。
このチュートリアルを完了すると、次のことができるようになります。
- ディレクトリを閲覧する
- サブディレクトリやファイルに移動する
- ブラウザを通じてファイルをダウンロードする
Nginxを設定する
まず、Nginxをインストールする必要があります。Nginxをインストールしていない場合は、他のチュートリアルを参照してください。
Nginxをインストールした後、静的ファイルサーバーをホストするように構成できます。 /etc/nginx/nginx.conf を確認して、設定ファイルが複数のファイルに分割されているかどうかを確認します。次のコマンドを使用して、それを開くことができます。
vi /etc/nginx/nginx.confhttp セクションに include /etc/nginx/conf.d/*.conf; が表示される場合、設定ファイルが複数のファイルに分割されていることを意味します。
次のコマンドを使用して、新しい設定ファイルを作成できます。
vi /etc/nginx/conf.d/static-file-server.conf注意:上記のコマンドを実行するには
sudoを使用する必要がある場合があります。sudo vi /etc/nginx/conf.d/static-file-server.conf
次に、次の設定をファイルに追加します。
server {
listen 80;
server_name static-file-server.tinkink.net; # あなたのドメイン名に変更してください
root /path/to/your/static/files; # あなたの静的ファイルディレクトリに変更してください
autoindex on; # ディレクトリリストを有効にする
location / {
try_files $uri $uri/ =404;
}
}ここで、 listen はリスニングポートを指定し、 server_name はドメイン名またはIPアドレスを指定し、 root は静的ファイルディレクトリを指定し、 autoindex はディレクトリリストを有効にします。
location / はルートパスに一致し、 try_files は試行するファイルを指定し、ファイルが見つからない場合は404エラーを返します。
Nginxを再起動する
Nginxを構成した後、構成が有効になるように再起動する必要があります。
sudo systemctl restart nginxまたは
sudo service nginx restartサイトにアクセスする
これで、ブラウザを通じてサイトにアクセスできます。例:http://static-file-server.tinkink.net
権限
セキュリティ上の問題を防ぐために、ディレクトリの権限が正しく設定されていることを確認してください。 nginxは一意のユーザー nginx を使用して実行する場合があるため、ディレクトリの所有者とグループをこのユーザーグループに設定する必要があります。次のコマンドを使用して、権限を設定できます。
chown -R nginx:nginx /path/to/your/static/filesさらに、静的ファイルディレクトリがユーザーのホームディレクトリにある場合は、ホームディレクトリと静的ファイルディレクトリに正しいアクセス権限があることも確認する必要があります。少し複雑ですので、静的ファイルディレクトリをホームディレクトリから移動することをお勧めします。
ホームディレクトリを一貫して使用する場合は、 nginx ユーザーをユーザーグループに追加する必要があります。次のコマンドを使用できます。
usermod -a -G {username} nginx次に、グループに権限を追加する必要があります。次のコマンドを使用できます。
chmod g+rwx /home/{username}注意:
{username}をあなたのユーザー名に置き換えてください。
それでもうまくいかない場合は、SELinuxをオフにすることをお勧めします。次のコマンドを使用できます。
sudo setenforce 0これで動作するようになった場合は、SELinuxを永久に無効にすることができます。 /etc/selinux/config ファイルを開き、 SELINUX=enforcing を SELINUX=disabled に変更し、保存してシステムを再起動します。
結論
Nginxを使用して静的ファイルサーバーを設定することは簡単ですが、ファイルをホームディレクトリに配置する場合は、少し複雑になる場合があります。
