it-swarm.com.de

NGinx Standard öffentlicher WWW-Standort?

Ich habe bereits mit Apache gearbeitet, daher ist mir bekannt, dass das öffentliche Standardwebstammverzeichnis normalerweise /var/www/ ist.

Ich habe kürzlich angefangen, mit Nginx zu arbeiten, aber ich kann das öffentliche Standardwebstammverzeichnis nicht finden.

Wo finde ich das öffentliche Standardwebstammverzeichnis für Nginx?

265
user1405298

Wenn Ihre Konfiguration keine root /some/absolute/path; -Anweisung oder eine Anweisung enthält, die einen relativen Pfad wie root some/relative/path; verwendet, hängt der resultierende Pfad von den Kompilierungsoptionen ab.

Wahrscheinlich der einzige Fall, in dem Sie eine Vermutung anstellen können, was dies für Sie bedeutet, wenn Sie heruntergeladen und die Quelle selbst kompiliert haben. In diesem Fall wären die Pfade relativ zu dem, was --prefix verwendet wurde. Wenn Sie es nicht geändert haben, wird standardmäßig /usr/local/nginx verwendet. Sie finden die Parameter, mit denen nginx kompiliert wurde, über nginx -V. Als erstes wird --prefix aufgeführt.

Da die root-Direktive standardmäßig html ist , würde dies natürlich dazu führen, dass /usr/local/nginx/html die Antwort auf Ihre Frage ist.

Wenn Sie jedoch nginx auf andere Weise installiert haben, sind alle Wetten deaktiviert. Ihre Distribution verwendet möglicherweise völlig andere Standardpfade. Zu lernen, welche Standardeinstellungen Ihre Auswahlverteilung für bestimmte Dinge verwendet, ist eine ganz andere Aufgabe.

145
Gnarfoz

Wenn Sie unter Ubuntu mit apt-get installieren, versuchen Sie es mit /usr/share/nginx/www.

EDIT:

In neueren Versionen wurde der Pfad folgendermaßen geändert: /usr/share/nginx/html

405
Lufix

Das Standardverzeichnis von Nginx unter Debian ist /var/www/nginx-default.

Sie können die Datei überprüfen: /etc/nginx/sites-enabled/default

und finde

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;
        }

Der Stamm ist der Standardspeicherort.

'default public web root' kann über die Ausgabe von nginx -V gefunden werden:

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

der --prefix-Wert ist die Antwort auf die Frage. für das Beispiel über dem Stamm ist/var/lib/nginx

33
Serge S

Unter Mac OS X wird bei der Installation von nginx mit brew das Standardverzeichnis erstellt:

/usr/local/var/www

Damit:

root html

meint

root /usr/local/var/www/html

Es gibt kein HTML-Verzeichnis, daher müsste es manuell erstellt werden.

24
freegnu

Sie können einfach den Stammordner nginx's dem Speicherort Ihrer Website zuordnen:

nano /etc/nginx/sites-enabled/default

suchen Sie in der Datei Standard im Server-Tag nach Stamm und ändern Sie den Standardordner Ihrer Website, z. Meine Websites befinden sich unter / var/www

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

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

Als ich Nginx, Apache2 und Lighttpd auswertete, habe ich alle auf meiner Website unter / var/www abgebildet. Ich fand dies der beste Weg, um effizient zu bewerten.

Dann können Sie den Server Ihrer Wahl starten/stoppen und sehen, welche Leistung am besten ist.

z.B.

service Apache2 stop
service nginx start

Übrigens ist Nginx tatsächlich sehr schnell!

19
Waqas

wie die meisten Benutzer hier sagten, ist es unter diesem Pfad:

/usr/share/nginx/html

Dies ist der Standardpfad, aber Sie können ihn auch erstellen.

alles, was Sie brauchen, ist, einen im Webserver-Stammbaum zu erstellen und ihm einige Berechtigungen zu geben, "nicht 0777" und nur für einen Benutzer und nur für diesen Benutzer sichtbar, aber das Ende des Pfads ist für alle seit dem Ende des Pfads sichtbar werden Ihre Dateien und Ordner öffentlich angezeigt.

sie können zum Beispiel Folgendes erstellen:

home_web/site1/public_html/www/

wenn Sie in Nginx einen virtuellen Host erstellen, können Sie Ihren eigenen Root-Pfad anpassen. Fügen Sie in Ihrem Serverblock einfach Folgendes hinzu:

 server {
    listen  80;
        server_name  yoursite.com;

root /home_web/site1/public_html/www/;
}
18
Digital site

Der Standard-Webordner für nginx hängt davon ab, wie Sie es installiert haben. Normalerweise befindet es sich jedoch an folgenden Speicherorten:

/usr/local/nginx/html
/usr/nginx/html
11
Ja͢ck

Führen Sie den Befehl nginx -V aus und suchen Sie nach --prefix. Verwenden Sie diesen Eintrag, um Ihre Standardpfade zu suchen.

9
Jack

Für Ubuntu- und Docker-Images:

 /usr/share/nginx/html/
9
DimiDak

Sichern Sie die Konfiguration:

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

Was Sie erhalten, kann unterschiedlich sein, da es davon abhängt, wie Ihr nginx konfiguriert/installiert wurde.

Verweise:

Update: Die Frage, ob/wann die Option -T zu nginx hinzugefügt wurde, ist unklar. Es wurde in der Manpage von vl-homutov am 16. Juni 2015 dokumentiert, die Teil des v1.9.2 release wurde. Es wird sogar in den Versionshinweisen erwähnt. Die Option -T ist seitdem in jeder nginx Version enthalten, einschließlich der unter Ubuntu 16.04.1 LTS verfügbaren:

[email protected]:/# 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
8
rubicks

Auf dem Mac installiere nginx mit brew:

/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
user2413075

Für CentOS, Ubuntu und Fedora ist das Standardverzeichnis /usr/share/nginx/html

8
MucaP

Sehen Sie sich die Nginx-Konfigurationsdatei an, um sicherzugehen. Dieser Befehl sucht nach dem, was auf Ihrem Computer konfiguriert ist:

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

auf meinem Rechner war es: `root/usr/share/nginx/www;

7
Thamme Gowda

Für AWS EC2 Linux finden Sie hier:

/usr/share/nginx
5
Vivek Sharma

Wenn Sie mit Ubuntu 14.04 arbeiten, finden Sie das Verzeichnis nginx www unter folgendem Pfad:

[email protected]:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
[email protected]:/usr/share/nginx/html$
5
Yusuf Ibrahim

In meinem Fall war es in /usr/share/nginx/html

sie können versuchen zu finden, indem Sie eine Suche durchführen

find / -name html
5
Eduardo Dennis

Sie können danach suchen, egal wo sie es verschoben haben (Systemadministrator verschoben oder neuere Version von nginx)

find/-name nginx

4
Dylan B

Wenn Sie den öffentlichen nginx-Stammordner ermitteln möchten, der zum Zeitpunkt der Kompilierung definiert wurde, können Sie einfach Ihre access.log-Datei überprüfen.

  1. Öffne nginx.conf
  2. Suchen Sie die Anweisung log_format
  3. Der Wert von log_format ist eine Vorlagenzeichenfolge, mit der Informationen in die Datei access.log geschrieben werden. Sie können dieser Vorlagenzeichenfolge die Variable $ document_root hinzufügen, um den Standard-WWW-Stammspeicherort in einer Datei zu protokollieren.

Hier ist ein Beispiel aus dem http-Abschnitt von nginx.conf mit modifizierter log_format -Direktive. $ Document_root wird am Anfang der Zeichenfolge:

    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. Dann sichern Sie alle Konfigurationsdateien * .conf im Verzeichnis conf.d und erstellen dort die Konfigurationsdatei test.conf mit den folgenden Zeilen:

    server{
        listen 80;
        server_name localhost;
    }
    
    1. Fügen Sie folgende Zeile in die Datei/etc/hosts ein: 127.0.0.1 localhost

    2. Nginx-Konfiguration neu laden: nginx -s reload

    3. Senden Sie eine GET-Anfrage an http: // localhost : curl http://localhost

    4. Überprüfen Sie die letzte Zeichenfolge von access.log : tail -n 1 /var/log/nginx/access.log

Hier ist die Beispielausgabe dieses Befehls, wobei /etc/nginx/html das zum Zeitpunkt der Kompilierung definierte Standarddokumentstammverzeichnis ist:

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

Zu beachten ist, dass auf der Standard-Indexseite für den Nginx-Server auch der Stammspeicherort angezeigt wird. Mit Nginx (1.4.3) unter Amazon Linux AMI erhalten Sie Folgendes:

Dies ist die Standardseite index.html, die mit nginx unter Amazon Linux AMI verteilt wird. Es befindet sich in/usr/share/nginx/html.

Sie sollten nun Ihren Inhalt an einem Ort Ihrer Wahl ablegen und die Root-Konfigurationsanweisung in der Nginx-Konfigurationsdatei /etc/nginx/nginx.conf bearbeiten

3
jboles

sie können auf die Datei config nginx zugreifen, Sie können root/path sehen. in diesem Standard von Nginx Apache bei /var/www/html

3
tomnyson

Sie finden es in/var/www /, dem Standardverzeichnis für Nginx und Apache, aber Sie können es ändern. schritt 1 gehe in den folgenden ordner/etc/nginx/sites-available

schritt 2 Bearbeiten Sie die Standarddatei dahingehend, dass Sie einen Serverblock finden, unter dem sich eine Zeile mit dem Namen root befindet, die den Speicherort definiert.

2
gokul kandasamy

in Ubuntu 19.04 fanden wir es auf

/ usr/share/nginx/html

2
Arséne

Mein Nginx unter Ubuntu ist "Nginx-Version: Nginx/1.9.12 (Ubuntu)" und Root-Pfad ist/var/www/html /

Ubuntu-Info lautet: Es sind keine LSB-Module verfügbar. Distributor ID: Ubuntu Beschreibung: Ubuntu 16.04 LTS Release: 16.04 Codename: xenial

Wenn Sie gerade nginx unter Ubuntu installiert haben, können Sie unter "/ etc/nginx/sites-available" die Standarddatei überprüfen. Es gibt eine Konfiguration wie "root/web/root/path/goes/here". Und genau das suchen Sie.

2
Daniel Dong

Die Standardeinstellung bezieht sich auf die Option prefix des Skripts configure, wenn Nginx kompiliert wird. Hier ist ein seltsames Beispiel aus 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
_

Anschließend lautet der Standardwert von rootfestgelegt auf das Verzeichnis html (gemäß Dokumentation der Direktive root ) prefix, wie anhand der Variablen $document_root aus einer einfachen Konfigurationsdatei überprüft werden kann:

_# 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
_

Böse Distributionen wie Debian scheinen es jedoch ziemlich zu modifizieren, um Sie besonders zu unterhalten:

_% 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;
_

In dieser Debian-Instanz können Sie also sehen, dass der Stamm schließlich auf _/usr/share/nginx/www_ gesetzt ist.

Wie Sie jedoch bei der Beispiel-Serverkonfiguration gesehen haben, die über http den Wert _$document_root_ liefert, ist die Konfiguration von nginx so einfach, dass Sie Ihre eigene Konfiguration in ein oder zwei Zeilen schreiben können, wobei Sie die erforderlichen root angeben Ihre genauen Bedürfnisse.

1
cnst

In Ubuntu lautet der Standardspeicherort des Nginx-Stammverzeichnisses /usr/share/nginx/html

1

Für nginx/1.4.6 (Ubuntu)

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

Ich hatte dieses Problem auch auf Digital Ocean, wo eine WordPress Website mit Nginx lief.

Meine Lösung bestand darin, Folgendes zu tun:

  1. Ändern Sie die Datei /etc/nginx/nginx.conf wie folgt:
server {
root /var/www/html;
}

Ich musste dann Sudo service nginx restart

Der Befehl nginx -V zeigt Ihnen auch, wo sich Ihre Nginx-Konfigurationsdatei befindet (meine war auf /etc/nginx/nginx.conf gerichtet).

0
John C

* in var/www/html zugewiesene Standardwebseiten* Standardkonfigurationsserver etc/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;
    }
}

* Standardkonfigurationsserver etc/nginx/nginx.conf

inhalt..

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;
#   }
#}

Standardzugriffsprotokolle mit IP-Clients var/log/nginx /...

0
user11793803

Alpine Linux hat überhaupt keinen Standardspeicherort. In der Datei /etc/nginx/conf.d/default.conf heißt es:

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

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

Ersetzen Sie diese durch eine Zeile wie root /var/www/localhost/htdocs, um auf das gewünschte Verzeichnis zu verweisen. Dann Sudo service nginx restart zum Neustart.

0
Lassi