Vhost на nginx работает не так, как ожидалось

#nginx #centos #web-deployment #centos7 #vhosts

#nginx #centos #веб-развертывание #centos7 #vhosts

Вопрос:

DNS моего регистратора домена попадает на мой сервер и получает страницу nginx по умолчанию, так что она настроена правильно

Я скопировал виртуальный хост nginx, который в настоящее время работает, изменил server_name и имя файла conf и больше ничего.

Разница:

 diff 701sm.club.conf drz400.info.conf 
3c3
<   server_name www.701sm.club 701sm.club;
---
>   server_name www.drz400.info drz400.info;
  

затем я перезапустил nginx.

Вот весь неработоспособный vhost:

 server {
    listen  80;
    server_name www.701sm.club 701sm.club;
    index index.php index.html index.htm;

    access_log /var/www/drz400.info/logs/access.log;
    error_log /var/www/drz400.info/logs/error.log;

    location / {
        root /var/www/drz400.info/production;
    }

    location ~ .php$ {
        root /var/www/drz400.info/production;
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}
  

Оба сайта должны попасть в мой .../production/index.html , но только один. Что здесь может быть не так?

Комментарии:

1. Оба сайта должны попасть в мой …/production/index.html , для какого URL-адреса и почему тогда присутствует местоположение php (вы можете удалить его, если он не нужен)?

2. URL-адрес DRZ. PHP присутствует, потому что я собираюсь запустить mediawiki.

3. правильно ли работают ваши URL-адреса php?

4. попадает только один index.html , тогда что делает другой? и я вижу выше, что для каталога drz400 имя сервера равно 701sm этому.

5. блок drz400 попадает в мой index.html как и предполагалось. Я скопировал и вставил блок в качестве основы для нового сайта — 701sm — и только изменил строку имени сервера, чтобы проверить, правильно ли он направлен. Вместо этого, когда вы переходите к 701sm.club, он попадает в мой nginx по умолчанию index.html , например, соединение не перенаправляется повторно в другой корневой каталог.

Ответ №1:

Пожалуйста, попробуйте следующий код,

 server {
    listen  80;
    server_name www.701sm.club 701sm.club;
    index index.php index.html index.htm;

    access_log /var/www/drz400.info/logs/access.log;
    error_log /var/www/drz400.info/logs/error.log;
    root /var/www/drz400.info/production;

    location / {
        try_files $uri /index.html;
    }

    location ~ .php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}
  

Комментарии:

1. Это не решило мою проблему. Я не верю, что проблема больше не существует в серверном блоке, я думаю, это должна быть более серьезная проблема с конфигурацией, поскольку один из этих сайтов работает, а другой — нет с идентичными серверными блоками.

Ответ №2:

Просто заинтересовался вашей директивой log, вы указываете журнал в /var/www/drz400.info/logs/error.log, пока ваш домен был www.701sm.club . Если вы получите доступ www.701sm.club , есть ли какая-либо ошибка в вашем error.log?

И какой тип ошибки произошел?