web-dev-qa-db-fra.com

NGinx Emplacement public www par défaut?

J'ai déjà travaillé avec Apache. Je suis donc conscient que la racine Web publique par défaut est généralement /var/www/.

J'ai récemment commencé à travailler avec nginx, mais je n'arrive pas à trouver la racine Web publique par défaut.

Où puis-je trouver la racine Web publique par défaut pour nginx?

260
user1405298

Si votre configuration n'inclut pas d'instruction root /some/absolute/path;, ou si elle en utilise une qui utilise un chemin relatif, tel que root some/relative/path;, le chemin résultant dépend des options de compilation.

Probablement le seul cas qui vous permettrait de faire une supposition éclairée sur ce que cela signifie pour vous, si vous téléchargé et compiliez vous-même la source. Dans ce cas, les chemins seraient relatifs à ce que --prefix aurait été utilisé. Si vous ne l'avez pas changé, la valeur par défaut est /usr/local/nginx. Vous pouvez trouver les paramètres avec lesquels nginx a été compilé via nginx -V, le premier étant --prefix.

Puisque la directive root est définie par défaut sur html , il en résulterait bien entendu que /usr/local/nginx/html serait la réponse à votre question.

Cependant, si vous avez installé nginx d’une autre manière, tous les paris sont désactivés. Votre distribution peut utiliser des chemins par défaut entièrement différents. Apprendre à déterminer le type de valeurs par défaut que votre distribution de choix utilise pour les choses est une autre tâche.

137
Gnarfoz

Si vous installez sur Ubuntu avec apt-get, essayez /usr/share/nginx/www.

EDIT:

Sur les versions plus récentes, le chemin a été remplacé par: /usr/share/nginx/html

400
Lufix

Le répertoire par défaut de Nginx sur Debian est /var/www/nginx-default.

Vous pouvez vérifier le fichier: /etc/nginx/sites-enabled/default

et trouve

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

La racine est l'emplacement par défaut.

58

Vous pouvez trouver la 'racine Web publique par défaut' à partir de la sortie de 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

la valeur --prefix est la réponse à la question. pour l'échantillon au-dessus de la racine est/var/lib/nginx

33
Serge S

Sur Mac OS X, l’installation de nginx avec brew crée le répertoire par défaut:

/usr/local/var/www

Alors:

root html

veux dire

root /usr/local/var/www/html

Il n'y a pas de répertoire HTML, il devrait donc être créé manuellement.

24
freegnu

Vous pouvez simplement mapper le dossier racine de nginx à l'emplacement de votre site Web:

nano /etc/nginx/sites-enabled/default

dans le fichier par défaut, recherchez racine dans la balise du serveur et modifiez le dossier par défaut de votre site Web, par exemple. mes sites Web sont à / var/www

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

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

Lorsque j'évaluais nginx, Apache2 et lighttpd, je les ai tous mappés sur mon site Web situé à l'emplacement / var/www. J'ai trouvé cela le meilleur moyen d'évaluer efficacement.

Ensuite, vous pouvez démarrer/arrêter le serveur de votre choix et voir celui qui fonctionne le mieux.

par exemple.

service Apache2 stop
service nginx start

En fait, nginx est vraiment très rapide!

18
Waqas

comme la plupart des utilisateurs l'ont dit ici, c'est sous ce chemin:

/usr/share/nginx/html

C'est le chemin par défaut, mais vous pouvez le faire.

tout ce dont vous avez besoin est d'en créer un dans l'arborescence racine du serveur Web et de lui attribuer des autorisations "non 0777", réservées à un utilisateur et uniquement visibles par cet utilisateur, mais la fin du chemin d'accès est visible par tout le monde depuis la fin du chemin. est ce que vos fichiers et dossiers seront visionnés par le public.

par exemple, vous pouvez en créer un comme ceci:

home_web/site1/public_html/www/

chaque fois que vous créez un hôte virtuel dans Nginx, vous pouvez personnaliser votre propre chemin racine. Ajoutez simplement quelque chose comme ceci dans votre bloc serveur:

 server {
    listen  80;
        server_name  yoursite.com;

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

Le dossier Web par défaut pour nginx dépend de la façon dont vous l'avez installé, mais il se trouve normalement à ces emplacements:

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

Exécutez la commande nginx -V et recherchez le --prefix. Utilisez cette entrée pour localiser vos chemins par défaut.

9
Jack

Pour les images Ubuntu et docker:

 /usr/share/nginx/html/
9
DimiDak

Dump de la configuration:

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

Ce que vous obtenez peut être différent, car cela dépend de la manière dont votre nginx a été configuré/installé.

Références:

Mise à jour: Il y a une certaine confusion sur la question de savoir si/quand l'option -T a été ajoutée à nginx. Il a été documenté dans la page de manuel par vl-homutov le 16 juin 2015, qui est devenu partie intégrante de version v1.9.2 . C'est même mentionné dans les notes de publication . L'option -T a été présente dans chaque version de nginx, y compris celle disponible sur 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
8
rubicks

Sur Mac, installez nginx avec infusion:

/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

Pour CentOS, Ubuntu et Fedora, le répertoire par défaut est /usr/share/nginx/html

8
MucaP

Regardez dans le fichier de configuration de nginx pour vous en assurer. Cette commande indique ce qui est configuré sur votre machine:

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

sur ma machine, c’était: `root/usr/share/nginx/www;

6
Thamme Gowda

Pour AWS EC2 Linux, vous trouverez ici:

/usr/share/nginx
5
Vivek Sharma

Si vous êtes sur Ubuntu 14.04, vous pouvez trouver le répertoire www de nginx au chemin suivant:

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

Dans mon cas, c'était dans /usr/share/nginx/html

vous pouvez essayer de trouver en effectuant une recherche

find / -name html
5
Eduardo Dennis

Vous pouvez le rechercher, quel que soit l'endroit où ils l'ont déplacé (administrateur système déplacé ou version plus récente de nginx)

find/-name nginx

4
Dylan B

Il suffit de noter que la page d'index par défaut du serveur nginx affichera également l'emplacement racine. À partir de nginx (1.4.3) sur Amazon Linux AMI, vous obtenez les éléments suivants:

Il s'agit de la page index.html par défaut distribuée avec nginx sur l'AMI Amazon Linux. Il se trouve dans/usr/share/nginx/html.

Vous devez maintenant placer votre contenu à l'emplacement de votre choix et modifier la directive de configuration racine dans le fichier de configuration nginx /etc/nginx/nginx.conf.

3
jboles

Si vous avez besoin de connaître le dossier racine public nginx défini lors de la compilation, vous pouvez simplement vérifier votre fichier access.log.

  1. Ouvrir nginx.conf
  2. Trouver la directive log_format
  3. La valeur de log_format est une chaîne de modèle utilisée pour écrire des informations dans le access.log fichier. Vous pouvez ajouter une variable $ document_root à cette chaîne de modèle afin de consigner l'emplacement de la racine www par défaut dans un fichier.

Voici un exemple tiré de la section http de nginx.conf avec modifié log_format directive, $ document_root est ajouté au début de la chaîne:

    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. Sauvegardez ensuite tous les fichiers de configuration * .conf dans le répertoire conf.d et créez-y le fichier de configuration test.conf avec les lignes suivantes:

    server{
        listen 80;
        server_name localhost;
    }
    
    1. Ajoutez la ligne suivante au fichier/etc/hosts: 127.0.0.1 localhost

    2. Rechargez la configuration nginx: nginx -s reload

    3. Envoyer la demande GET à http: // localhost : curl http://localhost

    4. Vérifiez la dernière chaîne de access.log : tail -n 1 /var/log/nginx/access.log

Voici l'exemple de sortie de cette commande, où /etc/nginx/html est la racine du document par défaut définie lors de la compilation:

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

vous pouvez accéder au fichier de configuration nginx, vous pouvez voir racine/chemin. dans ce défaut de nginx Apache à /var/www/html

3
tomnyson

Vous pouvez le trouver dans/var/www/qui est le répertoire par défaut pour nginx et Apache mais vous pouvez le changer. étape 1 aller dans le dossier suivant/etc/nginx/sites-available

étape 2 éditez le fichier par défaut en ce que vous pouvez trouver un bloc de serveur sous lequel il y aura une ligne nommée root qui définira l’emplacement.

2
gokul kandasamy

dans Ubuntu 19.04, nous l’avons trouvé

/ usr/share/nginx/html

2
Arséne

Mon nginx sur Ubuntu est "version de nginx: nginx/1.9.12 (Ubuntu)" et le chemin racine est/var/www/html /.

Ubuntu info is: Aucun module LSB n'est disponible. Identifiant du distributeur: Ubuntu Description: Ubuntu 16.04 LTS Version: 16.04 Nom de code: xenial

En fait, si vous venez d'installer nginx sur Ubuntu, vous pouvez aller dans "/ etc/nginx/sites-available" et vérifier le fichier par défaut. Il existe une configuration du type "racine/web/racine/chemin/va/ici". Et c'est ce que vous recherchez.

2
Daniel Dong

La valeur par défaut est liée à l'option prefix du script configure lorsque nginx est compilé; voici quelques exemples étranges de 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

Ensuite, la valeur par défaut de root est définie dans le répertoire html (conformément à la documentation de la directive root ), qui se trouve à l'intérieur prefix, comme on peut le vérifier en consultant la variable $document_root à partir d'un simple fichier de configuration:

# 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

Cependant, des distributions maléfiques telles que Debian semblent le modifier un peu, pour vous divertir:

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

Donc, sur cette instance de Debian, vous pouvez voir que la racine est finalement définie sur /usr/share/nginx/www.

Mais comme vous l'avez vu avec l'exemple de configuration de serveur qui servirait sa valeur $document_root sur http, la configuration de nginx est assez simple pour que vous puissiez écrire votre propre configuration en une ou deux lignes, en spécifiant le root requis pour répondre à vos besoins exacts.

1
cnst

Dans Ubuntu, l'emplacement du répertoire racine par défaut de Nginx est /usr/share/nginx/html

1
Syed Abdul Qadeer

Pour nginx/1.4.6 (Ubuntu)

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

J'ai également eu ce problème sur Digital Ocean avec un site Web WordPress avec nginx.

Ma solution était la suivante:

  1. Modifiez le fichier /etc/nginx/nginx.conf avec les éléments suivants:
server {
root /var/www/html;
}

Je devais alors Sudo service nginx restart

La commande nginx -V vous indique également où se trouve votre fichier de configuration nginx (le mien a été pointé à /etc/nginx/nginx.conf)

0
John C

* pages Web par défaut allouées dans var/www/html* serveur de configuration par défaut 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;
    }
}

* serveur de configuration par défaut etc/nginx/nginx.conf

contenu..

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

journaux d'accès par défaut avec les clients IP var/log/nginx /...

0
user11793803

Alpine Linux n’a aucun emplacement par défaut. Le fichier /etc/nginx/conf.d/default.conf dit:

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

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

Remplacez-les par une ligne telle que root /var/www/localhost/htdocs pour qu'elle pointe vers le répertoire souhaité. Puis Sudo service nginx restart pour redémarrer.

0
Lassi