以前にApacheを使用したことがあるので、デフォルトのパブリックWebルートは通常であることを認識しています/var/www/
。
私は最近nginxを使い始めましたが、デフォルトのパブリックWebルートを見つけることができません。
nginxのデフォルトのパブリックWebルートはどこにありますか?
以前にApacheを使用したことがあるので、デフォルトのパブリックWebルートは通常であることを認識しています/var/www/
。
私は最近nginxを使い始めましたが、デフォルトのパブリックWebルートを見つけることができません。
nginxのデフォルトのパブリックWebルートはどこにありますか?
回答:
構成にroot /some/absolute/path;
ステートメントが含まれていない場合、またはのような相対パスを使用するステートメントが含まれているroot some/relative/path;
場合、結果のパスはコンパイル時のオプションによって異なります。
自分でソースをダウンロードしてコンパイルした場合、これがあなたにとって何を意味するのかについて知識に基づいた推測ができる唯一のケースでしょう。その場合、パス--prefix
は使用されたものに相対的です。変更しなかった場合、デフォルトでになり/usr/local/nginx
ます。nginxがvia nginx -V
でコンパイルされたパラメーターを見つけることができ--prefix
、最初のパラメーターとしてリストされます。
ディレクティブはデフォルトでに設定されているので、root
html
もちろん、これは/usr/local/nginx/html
あなたの質問に対する答えになります。
ただし、nginxを他の方法でインストールした場合、すべての賭けは無効になります。ディストリビューションでは、まったく異なるデフォルトのパスを使用する場合があります。選択したディストリビューションが物事に使用するデフォルトの種類を理解することは、まったく別の作業です。
nginx -V 2>&1 | grep --color -o -e '--prefix=[^[:space:]]\+'
nginx HOMEを提供します。
apt-getを使用してUbuntuにインストールする場合は、を試してください/usr/share/nginx/www
。
編集:
最近のバージョンでは、パスは次のように変更されました。
/usr/share/nginx/html
2019編集:
試してみるかもしれ/var/www/html/index.nginx-debian.html
ません。
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;
}
ルートはデフォルトの場所です。
html
です。
default site
が有効かどうかを確認するにはどうすればよいですか?
「デフォルトのパブリック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です
Mac OS Xでbginを使用してnginxをインストールすると、デフォルトのディレクトリが作成されます。
/usr/local/var/www
そう:
root html
手段
root /usr/local/var/www/html
htmlディレクトリがないため、手動で作成する必要があります。
root html
、index.html
そして50x.html
に直接入れられます/usr/local/var/www
。そのため、html
フォルダの存在を疑っています。それについて少し教えてくれませんか。
/usr/local/Cellar/nginx/1.10.2_1/html
1.10.2_1がnginxバージョンである場所でした。
/usr/local/Cellar/nginx/1.12.0_1/html -> ../../../var/www/
やnginx -V
ショー:--prefix=/usr/local/Cellar/nginx/1.12.0_1
そうroot html
、そのリンクを経由してリダイレクトされます。
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は実際には非常に高速です!
ここでほとんどのユーザーが言ったように、それはこのパスの下にあります:
/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/;
}
/usr/share/nginx/html/
フォルダであることがわかりました。(セキュリティまたはその他の理由で)そのパスをまったく変更する理由はありますか?私が唯一のユーザーになり、その中で1つのWebサイトのみをホストする場合は、デフォルトのフォルダーのままにしても問題ありませんか?
UbuntuおよびDockerイメージの場合:
/usr/share/nginx/html/
構成をダンプします。
$ 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
-T
オプションを示しています。ある-T
特定のインストールから欠落しているオプションは?あなたの主張を立証するために何かを示すことができますか?
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;
}
CentOS、Ubuntu、Fedoraの場合、デフォルトのディレクトリは /usr/share/nginx/html
var/www/html
。
Ubuntu 14.04を使用している場合、nginx wwwディレクトリは次のパスにあります。
yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/usr/share/nginx/html$
var/www/html
。
コンパイル時に定義されたnginxパブリックルートフォルダーを見つける必要がある場合は、access.logファイルを確認してください。
以下は、変更された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. .......
次に、すべての構成ファイル* .confをconf.dディレクトリにバックアップし、次の行を含む構成ファイルtest.confを作成します。
server{
listen 80;
server_name localhost;
}
/ etc / hostsファイルに次の行を追加します。 127.0.0.1 localhost
nginx設定をリロードします。 nginx -s reload
GETリクエストをhttp:// localhostに送信します。curl http://localhost
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" "-"
ファイル構成nginxにアクセスできます。ルート/ pathが表示されます。このデフォルトのnginx apacheでは/var/www/html
/var/www/html
nginxではなく、ApacheのデフォルトのWebルートです。
* 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 / ...
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」のような設定があります。そしてそれがあなたが探しているものです。
nginxとapacheのデフォルトディレクトリである/ var / www /にありますが、変更することができます。手順1次のフォルダーに移動します/ etc / nginx / sites-available
ステップ2デフォルトのファイルを編集します。その下に、場所を定義するルートとして名前が付けられた行があるサーバーブロックを見つけることができます。
nginx / 1.4.6(Ubuntu)の場合
/etc/nginx$ cat /etc/nginx/sites-available/default | grep -i root
- root /usr/share/nginx/html;
Ubuntuでは、Nginxのデフォルトのルートディレクトリの場所は /usr/share/nginx/html
デフォルトは、nginxがコンパイルされるときprefix
のconfigure
スクリプトのオプションに関連しています。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_root
http経由で値を提供するサンプルサーバー構成で見たように、nginxの構成は非常に単純で、1行または2行で独自の構成を記述しroot
、正確なニーズを満たすために必要なものを指定できます。
root html;
ですか、実際のパスとは何ですか?
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
、再起動します。
nginx:alpine
画像を試してみるだけで、すぐにコンテンツを提供でき/usr/share/nginx/html
ます。
apk add nginx
インストールし、アルパインの独自のパッケージマネージャーからnginxを手動でインストールすると、私の回答に記載されている状況になります(または、数か月前に試してみたときの状況です)。