web-dev-qa-db-fra.com

comment désactiver l'accès direct à un site Web par adresse IP

J'ai un site web sur un VPS.

Le problème que je rencontre est que lorsque je saisis l’adresse IP du serveur, elle renvoie au site Web.
Même en entrant mail.domain.com, il fait la même chose.

Comment puis-je le désactiver pour qu'un visiteur reçoive un message ou soit dirigé vers le domaine?

J'ai essayé de désactiver l'adresse IP et d'envoyer un enregistrement sur Cloud Flare, mais cela n'a pas fonctionné.

Ma configuration est:

VPS on Linux Debian 
Nginx
no control panel just command line
Cloudflare
DNS setup with BIND
26
Khaled A

Vous pouvez utiliser la redirection, nginx config:

server {
        listen 80;
        server_name IP_ADDRESS;
        return 301 http://YOUR.DOMAIN;
}
24
Chernov

Vous pouvez simplement ajouter une directive serveur avant les autres.

server {
    listen 80;
    server_name _;
    return 404;
}
18
okin2014
server {
    listen      80 default_server;
    server_name "";
    return      444;
}

Vous devez spécifier le paramètre default_server de sorte que toutes les demandes de serveur non disponibles passent à ce server block qui renvoie 444 error

444: CONNEXION FERMÉE SANS RÉPONSE

ref: https://httpstatuses.com/444

15
AMB
if ($http_Host != "example.com") {
    return 301 example.com;
}
1
user3552325

vous pouvez renvoyer toute erreur que vous jugez appropriée. Vous trouverez une liste des erreurs ici List_of_HTTP_status_codes

server {
    listen      x.x.x.x:80;
    server_name x.x.x.x;
    return      404;
}  
1
Kareem

Vous pouvez essayer de définir l’adresse IP du serveur dans:

/etc/nginx/conf.d/default.conf

Donc ça ressemble à ça:

server {
    listen 80;
    server_name localhost IP.OF.VPS.HERE;

Ensuite, vous pouvez spécifier le sous-domaine vhost, par exemple:

server {
        listen 80;
        server_name subdomain.domain.com;

Et le domaine principal, comme:

server {
        listen 80;
        server_name www.domain.com domain.com;

Puis redémarrez Nginx:

/etc/init.d/nginx restart

Chaque vhost devrait avoir son propre fichier * .conf (pour une meilleure organisation), comme:

/etc/nginx/conf.d/subdomain.domain.com.conf
/etc/nginx/conf.d/domain.com.conf
/etc/nginx/conf.d/default.conf
1
user2972081

Vous pouvez utiliser la redirection, nginx config:

server {
        listen 80;`enter code here`
        server_name IP_ADDRESS;
        return 301 http://YOUR.DOMAIN;
}
1
Kapil

Placez ceci en haut de votre fichier /etc/nginx/conf.d/SERVER_IP_ADDRESS.conf et commentez tout ce qui se trouve en dessous.

#disabling accesing server by ip address
server {
        listen SERVER_IP_ADDRESS:80 default;
        server_name _;
        return 404;
}

Puis redémarrez votre serveur Nginx (sur Ubuntu, la commande est effectuée avec service nginx restart cette commande)

Maintenant, lorsque vous mettrez l'adresse IP de votre serveur dans le champ URL du navigateur, vous obtiendrez une erreur 404.

0
Sid