NGinxデフォルトのパブリックwwwロケーション?


303

以前にApacheを使用したことがあるので、デフォルトのパブリックWebルートは通常であることを認識しています/var/www/

私は最近nginxを使い始めましたが、デフォルトのパブリックWebルートを見つけることができません。

nginxのデフォルトのパブリックWebルートはどこにありますか?

回答:


166

構成にroot /some/absolute/path;ステートメントが含まれていない場合、またはのような相対パスを使用するステートメントが含まれているroot some/relative/path;場合、結果のパスはコンパイル時のオプションによって異なります。

自分でソースをダウンロードしてコンパイルした場合、これがあなたにとって何を意味するのかについて知識に基づいた推測ができる唯一のケースでしょう。その場合、パス--prefixは使用されたものに相対的です。変更しなかった場合、デフォルトでになり/usr/local/nginxます。nginxがvia nginx -Vでコンパイルされたパラメーターを見つけることができ--prefix、最初のパラメーターとしてリストされます。

ディレクティブはデフォルトでに設定されているのでroothtmlもちろん、これは/usr/local/nginx/htmlあなたの質問に対する答えになります。

ただし、nginxを他の方法でインストールした場合、すべての賭けは無効になります。ディストリビューションでは、まったく異なるデフォルトのパスを使用する場合があります。選択したディストリビューションが物事に使用するデフォルトの種類を理解することは、まったく別の作業です。


32
「nginx -V」(大文字のV)を使用して、nginxのコンパイルに使用される構成引数を見つけることができるというヒントを与えることができます。
kaufholdr 2017

1
@kaufholdrは正解です。言及された--prefix @ Gnarfozは次のようになります--prefix = / usr / share / nginx
Dung

6
これは、インストール先のOSにも依存します
。AmazonLinuxの

--prefixパスは常に正しいとは限りません。私のdebian 9 nginxインストールでは、プレフィックスパスは「/ var / www / html」でしたが、実際のデフォルトパスは「/ usr / share / nginx / html」でした。/ etc / nginx / sites-available / defaultのデフォルト設定ファイルを見ると、パスが--prefixパスと同じであることがわかりました。しかし、/ etc / nginx / conf.d / default.confにある設定ファイルは、ルートを/ usr / share / nginx / htmlとしてリストしました。default.confファイルは、通常のデフォルトファイルよりも優先されます。必ず両方の構成ファイルを確認してください。そうでない場合、間違ったルートで作業している可能性があります。
穴居

1
nginx -V 2>&1 | grep --color -o -e '--prefix=[^[:space:]]\+'nginx HOMEを提供します。
sjas

436

apt-getを使用してUbuntuにインストールする場合は、を試してください/usr/share/nginx/www

編集:

最近のバージョンでは、パスは次のように変更されました。 /usr/share/nginx/html

2019編集:

試してみるかもしれ/var/www/html/index.nginx-debian.htmlません。


113
Ubuntuのnginx 1.4.1は/ usr / share / nginx / htmlにあります
Nick Desaulniers

Raspberryにnginxをインストールしたところですが、デフォルトのディレクトリはLufix +1によって書かれたものと同じです。raspbianにapt-getをよりダウンロード
Mitro

4
CentOS 7.0では/ usr / share / nginx / htmlでもあることが確認されました
djhaskin987 14年

2
Debian apt-get、/ etc / nginx / available-sites / defaultを確認し、そこにパスを見つけました。
Chris.Zou

7
ubuntu 16 /var/www/html/index.nginx-debian.html
明るくしてください

65

DebianのデフォルトのNginxディレクトリは/var/www/nginx-defaultです。

ファイルを確認できます: /etc/nginx/sites-enabled/default

見つけて

server {
        listen   80 default;
        server_name  localhost;

        access_log  /var/log/nginx/localhost.access.log;

        location / {
                root   /var/www/nginx-default;
                index  index.html index.htm;
        }

ルートはデフォルトの場所です。


5
CentOSでは、/ etc / nginx / sites-enabled /フォルダーがないことがわかりました。/etc/nginx/conf.d/があり、server.confとvirtual.confの2つのファイルにこのサーバーの詳細があります。あなたもそのために気を付けることができます。
Nafis Ahmad 2014

1
Nafisのコメントに追加するには、conf.dディレクトリのファイル名が.confで終わっている必要があります。そうしないと、取得されません。
Ethan Hohensee 2017年

1
これは、デフォルトのサイトが有効で、リクエストに一致する場合にのみ適用されます。それ以外の場合、デフォルトのルートはhtmlです。
OrangeDog

@OrangeDog default siteが有効かどうかを確認するにはどうすればよいですか?
Timo

1
@Timoこの答えはどのように言う
OrangeDog

43

「デフォルトのパブリックWebルート」はnginx -V出力から確認できます。

nginx -V
nginx version: nginx/1.10.1
built with OpenSSL 1.0.2h  3 May 2016
TLS SNI support enabled
configure arguments: --prefix=/var/lib/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/run/nginx/nginx.pid --lock-path=/run/nginx/nginx.lock --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --user=nginx --group=nginx --with-ipv6 --with-file-aio --with-pcre-jit --with-http_dav_module --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_v2_module --with-http_auth_request_module --with-mail --with-mail_ssl_module

--prefix値は質問に対する答えです。ルートの上のサンプルの場合、ルートは/ var / lib / nginxです


1
はい、最高のクロスプラットフォームです。
ジェシーアデルマン2017

これは常に正しいとは限りません。一部のシステムでは「--prefix」が使用される場合がありますが、すべてではありません。nginx -Vがファイルの場所を追跡するのに役立つ多くの情報を提供することに同意しますが、これはOSに依存します。FreeBSDのIEは、「-prefix」が何であるかではなく、「/ usr / local / www」であり、一部のLinuxディストリビューションでは、延期される場合があります。設定を確認するのが最善です。
Mikec 2017

「--prefix」は、GNU標準で定義された変数です。gnu.org/prep/ standards/ html_node/Directory - Variables.htmlを参照してください。
Serge S

「--prefix」は、GNU標準で定義された変数です。gnu.org/prep/ standards/ html_node/Directory - Variables.htmlを参照してください。nginxは標準に従います。構成ファイルでルートまたは場所を定義しない場合(--conf-pathによって異なります)、プレフィックスは「デフォルトのパブリックWebルート」の場所を示します。そして、それはOSに依存しませんが、OSディストリビューションで提供されるパッケージは、「デフォルトのパブリックWebルート」を再定義する構成を提供することもできます。
Serge S

したがって、アルゴリズム:nginx -V出力で--conf-pathを探します。場所またはルートが構成で再定義されていない場合- 「デフォルトのパブリックWebルート」の場所に--prefixを使用します。
Serge S

25

Mac OS Xでbginを使用してnginxをインストールすると、デフォルトのディレクトリが作成されます。

/usr/local/var/www

そう:

root html

手段

root /usr/local/var/www/html

htmlディレクトリがないため、手動で作成する必要があります。


1
macOSと自作について言及した場合は+1。しかし、私はそれを見つけましたroot htmlindex.htmlそして50x.htmlに直接入れられます/usr/local/var/www。そのため、htmlフォルダの存在を疑っています。それについて少し教えてくれませんか。
iplus26

3
"brew info nginx"出力にリストされたdocrootを提供します。ただし、nginx構成で「root html」を指定すると、そのnginx構成のdocrootが変更されます。
freegnu

1
私(MAC OS X El Capitan 10.11.5)およびbrew(1.1.5)の場合、ディレクトリは/usr/local/Cellar/nginx/1.10.2_1/html 1.10.2_1がnginxバージョンである場所でした。
Yogesh Yadav

2
:私の醸造にセラーディレクトリがシンボリックリンクで、インストール/usr/local/Cellar/nginx/1.12.0_1/html -> ../../../var/www/nginx -V ショー:--prefix=/usr/local/Cellar/nginx/1.12.0_1そうroot html、そのリンクを経由してリダイレクトされます。
マークエディントン2017

@ iplus26 htmlディレクトリはすでに利用可能/usr/local/Cellar/nginx/1.12.2_1/html、/usr/local/var/wwwは単なるリンクだ
Kanagavelu Sugumar

21

nginxのルートフォルダをウェブサイトの場所にマッピングするだけです:

nano /etc/nginx/sites-enabled/default

デフォルトファイル内で、serverタグでルートを探し、ウェブサイトのデフォルトフォルダを変更します。たとえば、私のウェブサイトは/ var / wwwにあります

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www; <-- Here!
...

nginx、apache2、およびlighttpdを評価していたとき、すべてを/ var / wwwにある私のWebサイトにマッピングしました。私はこれが効率的に評価するための最良の方法だと思いました。

次に、選択したサーバーを起動/停止して、どれが最もパフォーマンスが良いかを確認できます。

例えば

service apache2 stop
service nginx start

ところで、nginxは実際には非常に高速です!


19

ここでほとんどのユーザーが言ったように、それはこのパスの下にあります:

/usr/share/nginx/html

これはデフォルトのパスですが、自分で作成することもできます。

必要なのは、Webサーバーのルートツリーで1つ作成し、「0777ではなく」、1人のユーザーのみにそのアクセス許可を付与し、そのユーザーだけが表示できるようにすることですが、パスの終わりは、パスの終わり以降すべてのユーザーに表示されますあなたのファイルとフォルダがパブリックに表示されるものです。

たとえば、次のように作成できます。

home_web/site1/public_html/www/

Nginxで仮想ホストを作成するときはいつでも、独自のルートパスをカスタマイズできます。サーバーブロックに次のようなものを追加するだけです。

 server {
    listen  80;
        server_name  yoursite.com;

root /home_web/site1/public_html/www/;
}

ええ、あなたは正しいです。centos7にNginxをインストールしたところ、デフォルトのパスが/usr/share/nginx/html/フォルダであることがわかりました。(セキュリティまたはその他の理由で)そのパスをまったく変更する理由はありますか?私が唯一のユーザーになり、その中で1つのWebサイトのみをホストする場合は、デフォルトのフォルダーのままにしても問題ありませんか?
Neel、2014年

最後の質問は気にしないでください。将来このセットアップに別の仮想ホストを追加したい場合に備えて、この方法の方が良いと思ったので、別のフォルダを作成することになりました。この方法で簡単です。乾杯:)
2014年

11

nginxのデフォルトのWebフォルダーは、インストール方法によって異なりますが、通常は次の場所にあります。

/usr/local/nginx/html
/usr/nginx/html

10

UbuntuおよびDockerイメージの場合:

 /usr/share/nginx/html/

知りたくないのですが、知らなかったとしたら、どうすれば正しい場所を見つけることができますか?これにはさまざまな答えがあります
Royi Namir '20

私が覚えている限り、私は "nginx"(find / -name nginxのようなもの)を検索し、このディレクトリ(またはそのサブディレクトリ)内で、ブラウザに表示されたドキュメントを見つけました。
DimiDak

9

コマンドnginx -V を実行して を探します--prefix。そのエントリを使用して、デフォルトのパスを見つけます。


9

構成をダンプします。

$ nginx -T
...
server {
    ...
    location / {
        root   /usr/share/nginx/html;
        ...
    }
    ...
}

nginx構成/インストールされた方法に依存するため、取得される内容は異なる場合があります。

参照:

更新:-Tオプションがに追加されたif / whenの問題について、いくつかの混乱がありますnginx。これは、v1.9.2リリースの一部となった2015年6月16日にvl-homutovによってmanページに記載されていましたリリースノートにも記載されています。この-Tオプションはnginx、Ubuntu 16.04.1 LTSで利用可能なものを含め、以降のすべてのリリースに存在しています。

root@23cc8e58640e:/# nginx -h    
nginx version: nginx/1.10.0 (Ubuntu)
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/share/nginx/)
  -c filename   : set configuration file (default: /etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

私はこのフラグが存在するとは思わない、答えを更新する必要があるかもしれません
lfender6445

@ ifender6445、私はあなたのコメントに完全に混乱しています。ソース内の行への2つの参照があり、それぞれが-Tオプションを示しています。ある-T特定のインストールから欠落しているオプションは?あなたの主張を立証するために何かを示すことができますか?
ルービック2016

はい、そうです、nginxの別のバージョンの可能性がありますか?gist.github.com/lfender6445/ed8c5e26db64eba595ae4aaf4d15ee0d
lfender6445

そうですか。古いバージョンのnginxを使用しているようです。申し訳ありません。
lfender6445 16

9

nginx設定ファイルを確認してください。このコマンドは、マシンで構成されているものをすべて把握します。

cat /etc/nginx/sites-enabled/default |grep "root"

私のマシンでは: `root / usr / share / nginx / www;


8

Macでbginを使用してnginxをインストールします。

/usr/local/etc/nginx/nginx.conf

location / { 
    root   html;  # **means /usr/local/Cellar/nginx/1.8.0/html and it soft linked to /usr/local/var/www**
    index  index.html;
}  

8

CentOS、Ubuntu、Fedoraの場合、デフォルトのディレクトリは /usr/share/nginx/html


からnginx rootが欲しいvar/www/html
Dhaduk Mitesh



5

Ubuntu 14.04を使用している場合、nginx wwwディレクトリは次のパスにあります。

yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/usr/share/nginx/html$

おかげで、簡潔で正確です。時には最も単純な説明が最良の説明です。
WhyAyala 2017年

からnginx rootが欲しいvar/www/html
Dhaduk Mitesh

5

どこに移動したかに関係なく、検索できます(システム管理者が移動したか、nginxの新しいバージョン)。

find / -name nginx


4

コンパイル時に定義されたnginxパブリックルートフォルダーを見つける必要がある場合は、access.logファイルを確認してください。

  1. nginx.confを開きます
  2. log_formatディレクティブを見つける
  3. log_formatの値は、access.logファイルに情報を書き込むために使用されるテンプレート文字列です。このテンプレート文字列に$ document_root変数を追加して、デフォルトのwwwルートの場所をファイルに記録できます。

以下は、変更されたlog_formatディレクティブを含むnginx.confのhttpセクションの例です。$ document_rootが文字列の先頭に追加されます。

    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

                  ## ADD $document_root HERE ##
        log_format  main  '$document_root $remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

        access_log  /var/log/nginx/access.log  main;

        etc. .......
  1. 次に、すべての構成ファイル* .confをconf.dディレクトリにバックアップし、次の行を含む構成ファイルtest.confを作成します。

    server{
        listen 80;
        server_name localhost;
    }
    
    1. / etc / hostsファイルに次の行を追加します。 127.0.0.1 localhost

    2. nginx設定をリロードします。 nginx -s reload

    3. GETリクエストをhttp:// localhostに送信しますcurl http://localhost

    4. access.logの最後の文字列を確認します。tail -n 1 /var/log/nginx/access.log

このコマンドの出力例を次に示します。/etc/nginx/htmlは、コンパイル時に定義されるデフォルトのドキュメントルートです。

    /etc/nginx/html 127.0.0.1 - - [15/Mar/2017:17:12:25 +0200] "GET / HTTP/1.1" 404 169 "-" "curl/7.35.0" "-"

それは機能しているように見えますが、解決されませんでした。*。knexusgroup.comのレコードは54.235.222.119、w3.knexusgroup.comにありますが、ドメイン<anything> .knexusgroup.comのログは記録されませんでした。これは、ルートディレクトリの適切な定義がある場所で機能します。何が問題なのかを理解できません。なぜ、どのngiinx構成にも一致しないサブドメインのルートが見つからないのです。
Ramratan Gupta 2017

4

ファイル構成nginxにアクセスできます。ルート/ pathが表示されます。このデフォルトのnginx apacheでは/var/www/html


/var/www/htmlnginxではなく、ApacheのデフォルトのWebルートです。
Ethan Hohensee

4

* var / www / htmlに割り当てられたデフォルトのページWeb *デフォルトの設定サーバーなど/nginx/sites/avaliable/nginx.conf

server {

    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.php;

    server_name _;

    location /data/ {
        autoindex on;
    }

    location /Maxtor {
        root /media/odroid/;
        autoindex on;

    }

        # This option is important for using PHP.
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
    }
}

*デフォルトの設定サーバーなど/nginx/nginx.conf

コンテンツ..

user www-data;
worker_processes 8;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}


#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
# 
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

IPクライアントのデフォルトのアクセスログvar / log / nginx / ...


3

nginxサーバーのデフォルトのインデックスページにもルートの場所が表示されることに注意してください。Amazon Linux AMIのnginx(1.4.3)から、以下を取得します。

これは、Amazon Linux AMIのnginxで配布されるデフォルトのindex.htmlページです。/ usr / share / nginx / htmlにあります。

次に、コンテンツを任意の場所に配置し、nginx構成ファイル/etc/nginx/nginx.confのルート構成ディレクティブを編集する必要があります


3

Ubuntuのnginxは "nginx version:nginx / 1.9.12(Ubuntu)"で、ルートパスは/ var / www / html /です

Ubuntuの情報:LSBモジュールはありません。ディストリビューターID:Ubuntu説明:Ubuntu 16.04 LTSリリース:16.04コード名:xenial

実際、nginxをUbuntuにインストールしたばかりの場合は、「/ etc / nginx / sites-available」に移動してデフォルトファイルを確認できます。「root / web / root / path / goes / here」のような設定があります。そしてそれがあなたが探しているものです。


3

nginxとapacheのデフォルトディレクトリである/ var / www /にありますが、変更することができます。手順1次のフォルダーに移動します/ etc / nginx / sites-available

ステップ2デフォルトのファイルを編集します。その下に、場所を定義するルートとして名前が付けられた行があるサーバーブロックを見つけることができます。



2

nginx / 1.4.6(Ubuntu)の場合

/etc/nginx$ cat /etc/nginx/sites-available/default | grep -i root
- root /usr/share/nginx/html;


1

デフォルトは、nginxがコンパイルされるときprefixconfigureスクリプトのオプションに関連しています。Debianからの奇妙なサンプルを以下に示します。

% nginx -V | & tr ' ' "\n" | fgrep -e path -e prefix
--prefix=/etc/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-log-path=/var/log/nginx/access.log
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--lock-path=/var/lock/nginx.lock
--pid-path=/var/run/nginx.pid

その後、デフォルト値のrootに設定されhtmlたディレクトリ(につきなどのドキュメントroot指向範囲内であることを起こる、)prefixを調べることで確認することができるよう、$document_root簡単な設定ファイルから変数:

# printf 'server{listen 4867;return 200 $document_root\\n;}\n' \
    >/etc/nginx/conf.d/so.10674867.conf

# nginx -s reload && curl localhost:4867
/etc/nginx/html

しかし、Debianのような邪悪なディストリビューションは、あなたをさらに楽しませるために、かなり修正しているようです:

% fgrep -e root -e include /etc/nginx/nginx.conf
    include /etc/nginx/mime.types;
    #include /etc/nginx/naxsi_core.rules;
    #passenger_root /usr;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

% fgrep -e root -e include \
    /etc/nginx/conf.d/*.conf /etc/nginx/sites-enabled/*
/etc/nginx/conf.d/so.10674867.conf:server{listen 4867;return 200 $document_root\n;}
/etc/nginx/sites-enabled/default:   root /usr/share/nginx/www;
/etc/nginx/sites-enabled/default:       # include /etc/nginx/naxsi.rules
/etc/nginx/sites-enabled/default:   #   root /usr/share/nginx/www;
/etc/nginx/sites-enabled/default:   #   include fastcgi_params;
/etc/nginx/sites-enabled/default:   # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:#  root html;
/etc/nginx/sites-enabled/default:#  root html;

したがって、このDebianのインスタンスでは、ルートが最終的にに設定されていることがわかります/usr/share/nginx/www

しかし、$document_roothttp経由で値を提供するサンプルサーバー構成で見たように、nginxの構成は非常に単純で、1行または2行で独自の構成を記述しroot、正確なニーズを満たすために必要なものを指定できます。


それはどういう意味root html;ですか、実際のパスとは何ですか?
Ramratan Gupta 2017

1
@RamratanGupta、あなたは答えを読んでいませんでしたか?最初の行は、パスがコンパイル時のプレフィックス設定に相対的であることを示しています。
cnst 2017年

1

nginxでWordPressウェブサイトを実行しているDigital Oceanでもこの問題が発生しました。

私の解決策は次のことをすることでした:

  1. /etc/nginx/nginx.conf次のようにファイルを変更します。
server {
root /var/www/html;
}

その後、私はしなければならなかった sudo service nginx restart

nginx -Vコマンドは、nginx構成ファイルの場所も表示します(鉱山はに向けられていました/etc/nginx/nginx.conf


0

Alpine Linuxにはデフォルトの場所がまったくありません。ファイル/etc/nginx/conf.d/default.confは言う:

# Everything is a 404
location / {
    return 404;
}

# You may need this to prevent return 404 recursion.
location = /404.html {
    internal;
}

これらを、root /var/www/localhost/htdocs目的のディレクトリを指すような行に置き換えます。その後sudo service nginx restart、再起動します。


1
違います。最新のnginx:alpine画像を試してみるだけで、すぐにコンテンツを提供でき/usr/share/nginx/htmlます。
ジンバリ

1
これはnginxプロジェクトによって作成されたDockerイメージのように聞こえ、たまたま基になるOSとしてAlpine Linuxを使用しています。アルパインLinuxをメインOSとしてapk add nginxインストールし、アルパインの独自のパッケージマネージャーからnginxを手動でインストールすると、私の回答に記載されている状況になります(または、数か月前に試してみたときの状況です)。
ラッシー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.