NGINX emplacement www public par défaut?

J'ai déjà travaillé avec Apache, donc je suis 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?

237
demandé sur user456584 2012-05-20 19:46:49

26 réponses

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

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

Depuis la directive root par défauthtml, cela entraînerait, bien sûr, /usr/local/nginx/html étant 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 à comprendre quel type de défaut votre distribution de choix utilise pour les choses est une autre tâche entièrement.

121
répondu Gnarfoz 2017-05-10 09:08:19

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

Modifier:

Sur les versions plus récentes, le chemin a changé en: /usr/share/nginx/html

384
répondu Lufix 2015-08-11 18:38:19

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

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

Et trouver

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.

49
répondu Babistalikesflyingonrails 2016-12-19 12:42:53

'default public Web root' peut être trouvé à partir de la sortie 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'exemple ci-dessus, la racine est /var/lib/nginx

27
répondu Serge S 2016-09-05 17:06:49

Sur Mac OS X, l'installation de nginx avec brew fait le répertoire par défaut:

/usr/local/var/www

Donc:

root html

Signifie

root /usr/local/var/www/html

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

22
répondu freegnu 2015-09-09 22:45:54

Vous pouvez simplement mapper le dossier racinede nginx à l'emplacement de votre site web:

nano /etc/nginx/sites-enabled/default

Dans le fichier default , recherchez le root dans la balise 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 assis à /var/www. J'ai trouvé cela la meilleure façon d'évaluer efficacement.

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

Par exemple

service apache2 stop
service nginx start

Btw, nginx est en fait très rapide!

16
répondu Waqas 2014-09-01 11:24:37

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 faire le vôtre cependant.

Tout ce dont vous avez besoin est d'en créer un dans l'arborescence racine du serveur web et de lui donner des autorisations" pas 0777 " et seulement pour un utilisateur et visible pour cet utilisateur seulement, mais la fin du chemin est visible pour tout le monde puisque la fin du chemin est ce que vos fichiers et dossiers seront

Par exemple, vous pouvez en faire un comme ce:

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/;
}
15
répondu Digital site 2015-07-05 14:08:34

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

/usr/local/nginx/html
/usr/nginx/html
11
répondu Ja͢ck 2012-05-20 16:05:25

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

9
répondu Jack 2016-04-07 16:17:47

Sur Mac installez nginx avec 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
répondu user2413075 2017-05-09 13:03:51

Vider 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 façon 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 sur 2015 juin 16, qui est devenu une partie de la version v1.9.2. Il est même mentionné dans les notes de version. L'option -T a été présente dans chaque version nginx Depuis, 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
7
répondu rubicks 2016-12-22 14:58:13

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

7
répondu MucaP 2017-12-15 14:53:05

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

Vous pouvez essayer de trouver en effectuant une recherche

find / -name html
5
répondu Eduardo Dennis 2015-09-04 01:44:37

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

yusuf@yusuf-he:/usr/share/nginx/html$ pwd
/usr/share/nginx/html
yusuf@yusuf-he:/usr/share/nginx/html$
5
répondu Yusuf Ibrahim 2017-01-01 12:44:37

Pour les images Ubuntu et docker:

 /usr/share/nginx/html/
5
répondu DimiDak 2018-06-21 22:56:28

Juste pour noter que la page d'index par défaut pour le serveur nginx affichera également l'emplacement racine. À partir du NGINX (1.4.3) sur Amazon Linux AMI, vous obtenez ce qui suit:

C'est l'index par défaut.page html qui est distribué avec nginx sur L'AMI Amazon Linux. Il est situé dans /usr/share/nginx/html.

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

3
répondu jboles 2014-02-05 12:01:58

Demande l'information par cette commande:

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

J'ai reçu :root /usr/share/nginx/www;

3
répondu Thamme Gowda 2015-01-02 10:53:52

Si vous avez besoin de trouver le dossier racine public nginx qui a été défini au moment de la compilation, vous pouvez simplement vérifier votre accès.le fichier de log.

  1. Ouvrez nginx.conf
  2. trouvez la directive log_format
  3. la valeur du log_format est une chaîne de modèle utilisée pour écrire des informations dans l'accès .fichier journal . Vous pouvez ajouter $ document_root variable à cette chaîne de modèle pour enregistrer l'emplacement racine www par défaut dans un fichier.

Voici un exemple de la section http de nginx.conf avec la directive modifiée log_format, $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. Puis sauvegardez tous les fichiers de configuration *.conf dans la résolution conf.d répertoire et créer il 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. Recharger la configuration nginx: nginx -s reload

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

    4. De Vérifier la dernière chaîne de accès.journal: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 au moment 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
répondu G.Denis 2017-03-15 16:18:15

Vous pouvez accéder à la configuration du fichier nginx, vous pouvez voir root / path. dans ce par défaut de Nginx apache à /var/www/html

3
répondu tomnyson 2018-06-21 22:56:58

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

Ubuntu info est : Aucun module LSB n'est disponible. Distributeur ID: Ubuntu Description: Ubuntu 16.04 LTS Sortie: 16.04 Nom de code: xenial

En fait, si vous venez d'installer Nginx sur Ubuntu, alors vous pouvez aller dans "/etc / nginx / sites-available "et vérifier le fichier par défaut, il y a une configuration comme "root / web / root / path / goes / here". Et qu'est ce que vous cherchez.

2
répondu Daniel Dong 2016-10-19 09:00:14

Pour AWS EC2 Linux, vous trouverez ici:

/usr/share/nginx
2
répondu Vivek Sharma 2018-06-21 22:57:07

Pour nginx/1.4.6 (Ubuntu)

/etc/nginx$ cat /etc/nginx/sites-available/default | grep -i root
- root /usr/share/nginx/html;
1
répondu lfender6445 2016-12-22 02:19:24

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

Par la suite, la valeur par défaut de root est défini sur le répertoire html (selon la documentation de la directive root ), qui se trouve dans prefix, comme on peut le vérifier en regardant le $document_root variable d'un fichier de configuration simple:

# 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, les distributions maléfiques comme Debian semble 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 enfin mis à /usr/share/nginx/www.

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

1
répondu cnst 2017-08-27 21:08:08

Vous pouvez le rechercher, peu importe où l'ont-ils déplacé (administrateur système déplacé ou version plus récente de nginx)

Trouver / - nom nginx

1
répondu Dylan B 2018-06-15 04:48:35

Vous pouvez le trouver dans/var/ www / c'est le répertoire par défaut pour Nginx et apache mais vous pouvez le changer. étape 1 Allez dans le dossier suivant/etc/nginx / sites-available

Étape 2 Modifier 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éfinit l'emplacement.

1
répondu gokul kandasamy 2018-07-06 09:14:03

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

0
répondu Syed Abdul Qadeer 2018-06-21 22:56:41