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?
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.
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
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.
'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
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.
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!
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/;
}
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
Exécutez la commande nginx -V
et regarder pour la --prefix
. Utilisez cette entrée pour localiser vos chemins par défaut.
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;
}
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
Pour CentOS, Ubuntu et Fedora, le répertoire par défaut est /usr/share/nginx/html
Dans mon cas, c'était dans /usr/share/nginx/html
Vous pouvez essayer de trouver en effectuant une recherche
find / -name html
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$
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
Demande l'information par cette commande:
cat /etc/nginx/sites-enabled/default |grep "root"
J'ai reçu :root /usr/share/nginx/www;
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.
- Ouvrez nginx.conf
- trouvez la directive log_format
- 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. .......
-
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; }
Ajoutez la ligne suivante au fichier /etc/hosts:
127.0.0.1 localhost
Recharger la configuration nginx:
nginx -s reload
Envoyer demande GET http://localhost:
curl http://localhost
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" "-"
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
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.
Pour nginx/1.4.6 (Ubuntu)
/etc/nginx$ cat /etc/nginx/sites-available/default | grep -i root
- root /usr/share/nginx/html;
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.
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
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.
Dans Ubuntu,
L'emplacement du répertoire racine par défaut de Nginx est /usr/share/nginx/html