LINUX.ORG.RU
решено ФорумAdmin

Проблема с виртуальными хостами в апаче

 , ,


0

1

Имеется домен, например example.com.

Я хочу сделать на blog.example.com например один сайт, а на example.com другой.

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

root@debian:~# cat /etc/apache2/sites-available/example 
<VirtualHost *:8080>
	ServerAdmin admin@mail
	DocumentRoot /var/www/blog
	ServerName blog.example.com
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/blog>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
root@debian:~# cat /etc/nginx/sites-available/example 
server { 
   listen 80; 
	root /var/www/blog/;
   index index.php index.html index.htm; 
   server_name blog.example.com; 
   location / { 
      try_files $uri $uri/ /index.php; 
   } 
   location ~ \.php$ { 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $remote_addr; 
      proxy_set_header Host $host; 
      proxy_pass http://127.0.0.1:8080; 
   } 
   location ~ /\.ht { 
      deny all; 
   } 
}
root@debian:~# cat /etc/apache2/ports.conf 
NameVirtualHost *:8080
Listen *:8080

<IfModule mod_ssl.c>
    Listen 443
</IfModule>
<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

По этим конфигам у меня при переходе на example.com и blog.example.com одно и тоже (содержимое /var/www/blog).

★★★★★

Последнее исправление: Amet13 (всего исправлений: 1)

тебе нужно сделать второй виртуальный хост для example.com.
<VirtualHost *:8080>
ServerAdmin admin@mail
DocumentRoot /var/www/main
ServerName example.com
...

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Спасибо, работает.

Я делал то же самое, но вместо /var/www/main прописывал просто /var/www, почему у меня это не работало? Или так нельзя делать вообще?

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

Я делал то же самое, но вместо /var/www/main прописывал просто /var/www, почему у меня это не работало? Или так нельзя делать вообще?

Можно. Почему не работало не знаю, скорее всего в чем то другом была ошибка.

TDrive ★★★★★
()
Ответ на: комментарий от Xegai

nginx выступает в роли фронтэнда для apache.

Amet13 ★★★★★
() автор топика
Последнее исправление: Amet13 (всего исправлений: 1)

Апач на 127.1, nginx на статический ip, сделать с маской * - что бы не делать на каждый виртхост апача аналогичный на nginx

Порт в апаче можно не менять, таким образом...

Вроде такого

server  {
        listen ipv4address:80;
        server_name_in_redirect off;


location / {
        proxy_pass http://127.0.0.1:80;
        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;
        proxy_connect_timeout 600;
        proxy_send_timeout   600;
        proxy_buffering      on;
        proxy_buffer_size    32k;
        proxy_buffers        64 32k;
        proxy_busy_buffers_size  640k;
}
      

 }
...
...

invokercd ★★★★
()
Последнее исправление: invokercd (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.