web-dev-qa-db-fra.com

supprimer la page d'accueil par défaut de Nginx lors de l'accès directement à partir de l'adresse IP

Sur mon serveur Ubuntu, j'installe nginx et configure l'hôte virtuel à l'aide de cet article. https://www.digitalocean.com/community/articles/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12-04-lts-- =

Le nom de domaine de l'hôte virtuel est comme www.example.com. Lorsque je vais sur www.example.com, je peux voir la page d'index de mon application. Cependant, quand je vais à la vraie adresse IP, je vois toujours la page d'accueil de nginx. Que puis-je faire pour supprimer cette page d'accueil ou pointer vers www.example.com si quelqu'un utilise l'adresse IP pour accéder à mon site?

J'ai configuré un enregistrement A pour pointer ip xxx.xxx.xxx.xxx vers www.example.com.

16
angelokh

Je pense que lorsque vous configurez nginx pour la première fois, il est livré avec un hôte virtuel "par défaut". Avez-vous essayé de supprimer cela? Avez-vous essayé de supprimer le lien symbolique? Une troisième option consisterait à ajouter un "tout refuser"; sur l'emplacement/de l'hôte virtuel par défaut.

Je ne sais pas exactement si cela fonctionnera et je ne peux pas le tester pour le moment. Si ce qui précède ne fonctionne pas, essayez ceci: http://nginx.org/en/docs/http/request_processing.html#how_to_prevent_undefined_server_names

http://your-server-ip/ est une demande avec un nom de serveur non défini. Vous devriez pouvoir le bloquer avec:

server {
    listen      80;
    server_name "";
    return      444;
}
25
ddutra

Vous devez supprimer le fichier default, situé dans /etc/nginx/sites-enabled:

rm /etc/nginx/sites-enabled/default

Redémarrez ensuite nginx:

service nginx reload
15
user1429980

Si vous avez supprimé default sous /etc/nginx/sites-available et redémarré nginx et la page d'accueil est toujours affichée, alors voyez s'il y a un default.conf en dessous de /etc/nginx/conf.d et supprimez-le, puis redémarrez nginx.

4
andreofthecape

Configuration de

server {
    listen      80;
    server_name xxxx;
    return      444;
}

J'obtiens 502 pour tous les uri, y compris mon URL d'application.


Je n'ai pas trouvé sites_enabled dossier sous /etc/nginx, à la place, mon site par défaut se trouve dans /usr/share/nginx/html

Je crée donc une autre page vierge située dans

/usr/share/nginx/html/blank

créer un index.html vierge

# echo >> index.html

puis modifiez le fichier default.conf

location / {
    root   /usr/share/nginx/html/blank;
    index  index.html ;
}

alors la page d'accueil devient vierge, cachant les informations nginx.


Au fait, si vous supprimez

location / {
    root   /usr/share/nginx/html/blank;
    index  index.html ;
}

ou définir

location / {
    try_files $uri $uri/ = 404;
}

vous obtiendrez 404 sur la page d'accueil, mais en affichant "version Nginx", ce qui n'est pas bon.

1
Bejond