Nginxを使用して静的ファイルサーバーをホストする方法
Nginxは静的ファイルをホストするために使用できるWebサーバーです。このチュートリアルでは、Nginxを使用して静的ファイルサーバーをホストする方法について説明します。
このチュートリアルを完了すると、次のことができるようになります。
- ディレクトリを閲覧する
- サブディレクトリやファイルに移動する
- ブラウザを通じてファイルをダウンロードする
Nginxを設定する
まず、Nginxをインストールする必要があります。Nginxをインストールしていない場合は、他のチュートリアルを参照してください。
Nginxをインストールした後、静的ファイルサーバーをホストするように構成できます。 /etc/nginx/nginx.conf
を確認して、設定ファイルが複数のファイルに分割されているかどうかを確認します。次のコマンドを使用して、それを開くことができます。
vi /etc/nginx/nginx.conf
http
セクションに 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を使用して静的ファイルサーバーを設定することは簡単ですが、ファイルをホームディレクトリに配置する場合は、少し複雑になる場合があります。