@i_want_to_know_everything

Nginx сайты на одном ip?

есть сервер, на нем несколько сайтов все на разных ip
конфиги каждого сайта начинаются так

listen ***.***.***.***:80;
server_name domain.com;
root /var/www/domain.com/html;
index index.php;

Все прекрасно работает
на 1 ip потребовалось повесить ещще несколько сайтов
при таком же конфиге для каждого домена на этом ip, открывается один и тот же сайт

В чем причина? Как решить?
Upd: Полный конфиг

Отличается для разных сайтов только доменом

server {
    listen xxx.xxx.xxx.xxx:80;
    return 301 https://domain.com$request_uri;
    server_name domain.com;
}


server {
	listen xxx.xxx.xxx.xxx:443 ssl;
	server_name domain.com;
	root /var/www/domain.com/html;
    index index.php;
  
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        add_header Strict-Transport-Security max-age=31536000;
        ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;

   location ~* \.(?:manifest|appcache|html?|xml|json)$ {
        expires -1;
        # access_log logs/static.log; # I don't usually include a static log
   }

    location ~* \.(?:rss|atom)$ {
        expires 1h;
        add_header Cache-Control "public";
    }

        location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|woff)$ {
        expires 1M;
        access_log off;
        add_header Cache-Control "public";
    }

    location ~* \.(?:css|js)$ {
        expires 1y;
        access_log off;
        add_header Cache-Control "public";
    }

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

    
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /var/www/domain.com/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
  • Вопрос задан
  • 11124 просмотра
Решения вопроса 1
castomi
@castomi
Серверный администратор - tickets.settin.ru
Если всё именно так как Вы сказали, то всё должно работать. Но я так понимаю Вы много чего упустили. Скините конфиги подскажу где запинаетесь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
1. Для понимания того как Nginx обрабатывает запросы обязательно почитайте это
2. Так же обязательно определите default_server, например в файле /etc/nginx/conf.d/fallback.conf (путь может меняться, см. include в nginx.conf) можно написать:
server {
        listen XX.XX.XX.XX:80 default_server;
        server_name _;
        return 444;
}

default_server пригодиться для обработки неправильных запросов, например запросов без поля "Host"
В моем примере чуть выше nginx просто будет закрывать соединение для таких запросов, для этого служит спец. код 444.
Ответ написан
Комментировать
@Fixid
Нужен полный конфиг
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы