Skip to content
On this page

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=enforcingSELINUX=disabled に変更し、保存してシステムを再起動します。

結論

Nginxを使用して静的ファイルサーバーを設定することは簡単ですが、ファイルをホームディレクトリに配置する場合は、少し複雑になる場合があります。