Назад | Перейти на главную страницу

IP-адрес показывает страницу приветствия Nginx по умолчанию, но URL-адрес показывает установленный сайт WP

Я установил WordPress на стек LEMP в Ubuntu в Digital Ocean.

Когда я использую IP-адрес Droplet для доступа к нему, он показывает страницу приветствия nginx по умолчанию; но когда я использую его URL, он показывает фактический сайт WordPress, установленный на сайте.

  1. В чем может быть проблема?
  2. Какая лучшая практика с точки зрения безопасности?

Вот моя конфигурация nginx:

# Redirect HTTP -> HTTPS
server {
    listen 80;
    server_name www.mysite.in mysite.in;

    include snippets/letsencrypt.conf;
    return 301 https://mysite.in$request_uri;
}

# Redirect WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.mysite.in;

    ssl_certificate /etc/letsencrypt/live/mysite.in/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mysite.in/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/mysite.in/chain.pem;
    include snippets/ssl.conf;

    return 301 https://mysite.in$request_uri;
}

server {
    listen 443 ssl http2;
    server_name mysite.in;

    root /var/www/html/mysite.in;
    index index.php;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/mysite.in/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mysite.in/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/mysite.in/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # log files
    access_log /var/log/nginx/mysite.in.access.log;
    error_log /var/log/nginx/mysite.in.error.log;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}

В вашей конфигурации для nginx вы используете имя сервера как mysite.in. Поэтому, когда вы обращаетесь к нему с помощью URL-адреса (mysite.in), он работает, но не с IP-адресом. Поскольку nginx ожидает имя сервера только как URL-адрес.

Если вы хотите получить к нему доступ как с URL-адреса, так и с IP-адреса, вы можете использовать подчеркивание в качестве имени сервера.

название сервера _;

Если вы не укажете хост, ваш Nginx должен обслуживать конфигурацию сервера по умолчанию. У всех тех, кого вы показали, есть имя сервера.