@mr_drinkens89

Как правильно настроить nginx на несколько (порядка 20) доменов?

Добрый день.
Подскажите по вопросу.
Имеется выделенный сервер с Nginx. Домены (их 15), я привязывал к серверу следующим образом: в регистраторе прописывал в А-записи IP адрес сервера (так как не настроен свой DNS сервер). Получилось так,что теперь в продвижении сайты все теряют позиции,т.к.яндекс думает,что эти домены - алиасы для одного из них.
Как правильно настраивать Nginx для обслуживания нескольких доменов? надо ли поднимать апач (и поможет ли это)?Или же необходимо настраивать DNS сервер?
Спасибо.
  • Вопрос задан
  • 4647 просмотров
Пригласить эксперта
Ответы на вопрос 3
@MaySky
Остро нуждаемся в текущих конфигах nginx, чтоб понять все точно.
Общий смысл
server {
server_name mysite1.ru;
...
}
server {
server_name mysite2.ru;
...
}
server {
server_name mysite3.ru;
...
}
Ответ написан
Комментировать
@mr_drinkens89 Автор вопроса
server {
    listen 80;
    server_name www.site.ru;
    rewrite ^ http://site.ru$request_uri?;
}
 
server {
    listen 80;
    server_name  site.ru;
    root /var/www/site.ru;
    index index.php;
    charset UTF-8;
 
    gzip on;
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_types text/plain text/xml text/css application/x-javascript;
 
    access_log /var/log/nginx/site.ru.access.log;
    error_log /var/log/nginx/site.ru.error.log;

    location /nginx_status {
        stub_status on;
        access_log off;
    }
 
    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }
 
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
	fastcgi_pass php;
	fastcgi_param SCRIPT_FILENAME /var/www/site.ru$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT /var/www/site.ru;
        fastcgi_index index.php;
        include fastcgi_params;
 
    }
 
 
    location ~ ^/(status|ping)$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
        allow 127.0.0.1;
        deny all;
    }
}


Вот пример одного из конфигов. Для каждого сайта - свой,и аналогичный
Ответ написан
Комментировать
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Я загоняю имя хоста в переменную, просто в определенной общей директории делаем папки с именами доменов, они автоматом подхватываются и nginx и если надо apache, добавить новый домен - надо просто создать с ним директорию в /var/www/, все остальное подхватится автоматом, сотни доменов работают нормально, если надо для какого-то конкретного чуть другие настройки, создаем для него личный конфиг, для всех остальных общий с переменными, вот примеры:
Для nginx
server {
    server_name ~^(?:www\.)?(?P<host_wo_www>.+)$;
    server_name_in_redirect     off;
    resolver    127.0.0.1;
root /var/www/$host_wo_www;
access_log /var/log/nginx/$host_wo_www-access.log;
error_log /var/log/nginx/Allhost-error.log;
............

Для апач, если есть на бэкенде:
<VirtualHost *:8000>
UseCanonicalName Off
VirtualDocumentRoot "/var/www/%0"
ServerName "%0"
ServerAlias "*.%0"
ErrorLog ${APACHE_LOG_DIR}/AllHost-error.log
LogLevel error
#CustomLog ${APACHE_LOG_DIR}/%0-access.log combined
CustomLog /dev/null combined

<Directory "/var/www/%0/">
AllowOverride All
Order allow,deny
Allow from all
</Directory>

..............
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы