Настройка виртуальных хостов

Sunday

Cōgitō ergō sum
Регистрация
13 Дек 2009
Сообщения
823
Реакции
342
Установлен Apache+Nginx. Имеется один основной домен и 40 поддоменов. Все поддомены имеют общую с основным директорию, т.к. движок общий. Только один поддомен имеет свою директорию, т.к. на нем висит PhpMyAdmin и для него создан отдельный файл виртуального хоста.

Вопрос такой - можно ли прописать виртуальные хосты в одном файле или придется тупо делать 40 файлов?
И как в таком случае нужно поступать с конфигом nginx-a?

Спасибо.
 
в /etc/httpd/conf/httpd.conf в конце посмотри пример. Туда дописываешь и ребутишь апач
 
Вы имеете ввиду блок <VirtualHost 127.0.0.1:8080> ? Так что нужно просто клонировать эти блоки внутри конфига? И там всего одна строка, которая будет отличаться - это ServerName. Может есть какая-то возможность указать
Код:
ServerName *.domen.ru
или что-то типа такого?
А что делать с конфигом nginx-a?
 
Да, с правильными настройками путей и названий
 
Пример в апаче:
Код:
NameVirtualHost 127.0.0.1
 
<VirtualHost 127.0.0.1>
  ServerName localnet
  ServerAdmin admin@localnet
</VirtualHost>
 
<VirtualHost 127.0.0.1>
  ServerName test1
  ServerAdmin admin@test1.my
  DocumentRoot /home/test1.ru/www/
<Directory /home/test1.ru/www/>
  Options Includes
  AllowOverride all
</Directory>
  ErrorLog logs/test1.ru.error.log
  CustomLog logs/test1.ru.log common
  ScriptAlias /cgi-bin/ "/home/test1.ru/cgi-bin/"
<Directory /home/test1.ru/cgi-bin/>
  Options ExecCGI
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>
 
<VirtualHost 127.0.0.1>
  ServerName test2
  ServerAdmin admin@test2.my
  DocumentRoot /home/test2.ru/www/
<Directory /home/test2.ru/www/>
  Options Includes
  AllowOverride all
</Directory>
  ErrorLog logs/test2.ru.error.log
  CustomLog logs/test2.ru.log common
  ScriptAlias /cgi-bin/ "/home/test2.ru/cgi-bin/"
<Directory /home/test2.ru/cgi-bin/>
  Options ExecCGI
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

Пример в nginx:
Код:
server {
  server_name domain-1.com;
  access_log /var/log/nginx/domain-1.com.log;
 
  location / {
    root /var/www/domain-1.com;
    index index.htm index.html;
  }
}
 
server {
  server_name domain-2.com;
  access_log /var/log/nginx/domain-2.com.log;
  location / {
    root /var/www/domain-2.com;
    index index.htm index.html;
  }
}

Как писать показано, а дальше просто подставь настройки своих хостов...
 
Каждому хосту писать индивидуальный блок <VirtualHost 127.0.0.1> даже,если они имеют общий DocumentRoot?
А вот для nginx вычитал, что можно указывать server_name со звездочкой
Код:
server_name *.domain.com;
тогда вообще получается можно не создавать под каждый хост блок "server"?
 
По поводу nginx - если у них общий путь - то да, также как и писал выше, а для апача будет выглядеть так:
Код:
<VirtualHost *>
ServerName server.domain.com
ServerAlias server server2.domain.com server2
# ...
</VirtualHost>
Через ServerAlias прописываешь все хосты которые относятся к данному пути...
 
Что-то у меня уже голова квадратная. Не понятно, но не работают поддомены - выдают forbidden. Я прописывал блок server и в самом конфиге nginx-a и создавал отдельный файл виртуального хоста в папке sites-available и делал симлинк в папке sites-enabled. Сначала делал со звездочкой перед основным доменом, потом пробовал делать правило для конкретного поддомена, но что-то я видать не так делаю. не фурычат поддомены и всё тут...
Если вырубить nginx, то поддомен начинает работать.
 
Выложи сюда конфиг nginx + логи..

Если вырубить nginx, то поддомен начинает работать.
Каким макаром? запускаешь апач на одинаковом порту с nginx? или как ?
 
конфиг

Код:
user www-data;
worker_processes 4;
 
pid /var/run/nginx.pid;
 
events {
    worker_connections 2048;
    # multi_accept on;
}
 
http {
 
    ##
    # Basic Settings
    ##
 
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;
 
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;
 
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
 
    log_format main ‘$remote_addr – $remote_user [$time_local] $status ‘
    ‘»$request» $body_bytes_sent «$http_referer» ‘
    ‘»$http_user_agent» «http_x_forwarded_for»‘;
    access_log /var/log/nginx/access.log main;
 
    ##
    # Logging Settings
    ##
 
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
 
    ##
    # Gzip Settings
    ##
 
    gzip on;
    gzip_disable "msie6";
 
    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 
    ##
    # Virtual Host Configs
    ##
 
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
 
    server {
        listen 62.76.187.80:80;
        server_name domen.ru *.domen.ru;
        server_name_in_redirect off;
        access_log /var/log/nginx/domen_ru.access.log main;
     
        location / {
            proxy_pass http://127.0.0.1:8080/;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 10m;
            proxy_connect_timeout 90;
        }
     
     
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$
        {
            root /srv/www/domen.ru/public_html;
        }
    }
}
 
 
#mail {
#    # See sample authentication script at:
#    # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#    # auth_http localhost/auth.php;
#    # pop3_capabilities "TOP" "USER";
#    # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#    server {
#        listen    localhost:110;
#        protocol  pop3;
#        proxy      on;
#    }
#
#    server {
#        listen    localhost:143;
#        protocol  imap;
#        proxy      on;
#    }
#}
[/spoil]
Лог

[spoil]
Код:
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"
Мой IP - - [28/Jun/2012:17:44:52 +0400] "GET / HTTP/1.1" 403 456 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1" "-"

Каким макаром?
Обращаюсь напрямую на порт апаче poddomen.domen.ru:8080
 
Назад
Сверху