Назад | Перейти на главную страницу

Настройка Apache VirtualHost… 502 Bad Gateway

Я пытаюсь настроить виртуальные хосты apache на Ubuntu 12.04 lts. Я следил за этим руководством здесь http://www.debian-administration.org/articles/412 за исключением того, что я использовал / var / www, а не / home / www. Я установил для корневой папки документа 755 разрешений. Это сервер, который я использую у себя дома, так что, возможно, это может быть проблема с моим маршрутизатором, я думаю? Я не использую прокси. Нужно ли каким-то образом настроить переадресацию портов для запуска vhosts? (И да, он работал нормально до vhosts. Я получаю ошибку ответа 502 (плохой шлюз). Вот два моих включенных сайта

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName www.functioncreate.com
    ServerAlias functioncreate.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/functioncreate/htdocs/

    # CGI Directory
    ScriptAlias /cgi-bin/ /var/www/functioncreate/cgi-bin/
    <Location /cgi-bin>
            Options +ExecCGI
    </Location>

    # Logfiles
    ErrorLog  /var/www/fucntioncreate/logs/error.log
    CustomLog /var/www/functioncreate/logs/access.log combined
</VirtualHost>

И второй:

#
#  Example.com (/etc/apache2/sites-available/www.example.com)
#
<VirtualHost *:80>
    ServerName www.labelleviemodesto.com
    ServerAlias labelleviemodesto.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/labellevie/htdocs/

    # CGI Directory
    ScriptAlias /cgi-bin/ /var/www/labellevie/cgi-bin/
    <Location /cgi-bin>
            Options +ExecCGI
    </Location>


    # Logfiles
    ErrorLog  /var/www/labellevie/logs/error.log
    CustomLog /var/www/labellevie/logs/access.log combined
</VirtualHost>

В моем httpd.conf ничего нет. Я пробовал с включенным и отключенным сайтом "по умолчанию". Единственное, что я коснулся в apache, - это новые сайты, которые я создал в sites-available, а затем привязал символические ссылки к сайтам с поддержкой через a2ensite (с последующей перезагрузкой apache), а затем создал virtual.conf в conf.d с этим внутри:

#
#  We're running multiple virtual hosts.
#
  NameVirtualHost *

Вот мой error.log

Warning: DocumentRoot [/var/www/functioncreate] does not exist
Warning: DocumentRoot [/var/www/labellevie] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Feb 12 23:40:40 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
[Wed Feb 12 23:40:40 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured -- resuming normal operations
[Wed Feb 12 23:44:55 2014] [notice] Graceful restart requested, doing restart
Warning: DocumentRoot [/var/www/functioncreate] does not exist
Warning: DocumentRoot [/var/www/labellevie] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Feb 12 23:44:55 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
[Wed Feb 12 23:44:55 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured -- resuming normal operations
[Wed Feb 12 23:46:06 2014] [notice] Graceful restart requested, doing restart
Warning: DocumentRoot [/var/www/labellevie] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Feb 12 23:46:06 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
[Wed Feb 12 23:46:06 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured -- resuming normal operations
[Wed Feb 12 23:46:29 2014] [error] [client 10.0.0.14] File does not exist: /var/www/functionCreate/favicon.ico
[Thu Feb 13 00:22:45 2014] [notice] Graceful restart requested, doing restart
Warning: DocumentRoot [/var/www/labellevie] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Thu Feb 13 00:22:45 2014] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[Thu Feb 13 00:22:45 2014] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[Thu Feb 13 00:22:45 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
[Thu Feb 13 00:22:45 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
(2)No such file or directory: apache2: could not open error log file /var/www/fucntionCreate/logs/error.log.
Unable to open logs
[Thu Feb 13 12:03:37 2014] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Thu Feb 13 12:03:37 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured -- resuming normal operations
[Thu Feb 13 12:03:57 2014] [notice] caught SIGTERM, shutting down
[Thu Feb 13 12:03:58 2014] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured -- resuming normal operations
[Thu Feb 13 12:04:23 2014] [error] [client 166.137.191.15] File does not exist: /var/www/favicon.ico
[Thu Feb 13 12:04:57 2014] [error] [client 166.137.191.15] File does not exist: /var/www/favicon.ico
[Thu Feb 13 12:05:40 2014] [error] [client 186.251.208.20] script not found or unable to stat: /usr/lib/cgi-bin/php
[Thu Feb 13 12:05:40 2014] [error] [client 186.251.208.20] script not found or unable to stat: /usr/lib/cgi-bin/php5
[Thu Feb 13 12:05:40 2014] [error] [client 186.251.208.20] script not found or unable to stat: /usr/lib/cgi-bin/php-cgi

[Thu Feb 13 12:05:40 2014] [error] [client 186.251.208.20] script not found or unable to stat: /usr/lib/cgi-bin/php5
[Thu Feb 13 12:05:40 2014] [error] [client 186.251.208.20] script not found or unable to stat: /usr/lib/cgi-bin/php-cgi
[Thu Feb 13 12:05:41 2014] [error] [client 186.251.208.20] script not found or unable to stat: /usr/lib/cgi-bin/php.cgi
[Thu Feb 13 12:05:41 2014] [error] [client 186.251.208.20] script not found or unable to stat: /usr/lib/cgi-bin/php4
[Thu Feb 13 12:09:18 2014] [notice] Graceful restart requested, doing restart
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Thu Feb 13 12:09:19 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
(2)No such file or directory: apache2: could not open error log file /var/www/fucntionCreate/logs/error.log.
Unable to open logs

У меня есть несколько советов:

Проверьте, нет ли различий в поведении на обеих сторонах маршрутизатора. Допустим, внутренний IP-адрес вашего сервера 192.168.0.10. Отредактируйте файл hosts на вашем тестовом компьютере (/ etc / hosts на Mac и c: \ windows \ system32 \ driver \ etc \ hosts в Windows - не забудьте использовать sudo на Mac или «запускать от имени администратора» в Windows, иначе вы выиграете. t иметь возможность редактировать файл) и добавить в него следующие строки (замените 192.168.0.10 на ваш фактический внутренняя / домашняя сеть IP-адрес сервера):

192.168.0.10    www.labelleviemodesto.com labelleviemodesto.com
192.168.0.10    www.functioncreate.com functioncreate.com

Пропингуйте все эти доменные имена, чтобы убедиться, что вы попадаете на правильный IP-адрес. nslookup не будет работать, поскольку он будет запрашивать только DNS, который даст вам правильный (внешний) IP-адрес для сервера и проигнорирует переопределение файла hosts. Ping и все другие программы будут учитывать переопределение файла hosts. Очевидно, вам нужно сделать это внутри вашей частной (домашней) сети, например, по Wi-Fi. Если ping нацелен на внутренний IP-адрес (192.168.0.10) для всех 4 доменов (это важно, поскольку, например, functioncreate.com может перенаправлять на www.functioncreate.com и наоборот, поэтому вы хотите убедиться, что не имеет значения что, вы говорите с внутренним IP напрямую, без маршрутизатора посередине).

В любом случае, суть: посмотрите, по-прежнему ли вы получаете ошибку 502. Если да, то, скорее всего, он исходит от Apache и что-то не так с вашими файлами конфигурации. Если он работает нормально через частные IP-адреса, но когда вы выходите извне и получаете доступ к этому серверу через маршрутизатор, вы получаете ошибку 502, то проблема заключается в конфигурации вашего маршрутизатора.

Предполагаю: это роутер. Похоже, в вашей конфигурации Apache нет ничего похожего на обратное проксирование.

Заключительное примечание: убедитесь, что у вас только один и только один ИмяVirtualHost строчку во всех ваших файлах .conf. Если у вас их больше одного, или, если ваш VirtualHost параметры не совсем соответствуют вашим ИмяVirtualHost параметр, вы получите странные, неожиданные результаты. Например, поскольку у вас уже есть все ваши виртуальные хосты, определенные так:

VirtualHost *:80

Убедитесь, что одна-единственная строка NameVirtualHost во всех ваших конфигурационных файлах Apache выглядит так:

NameVirtualHost *:80

Вы не должны видеть подобных строк в своих журналах!

[Wed Feb 12 23:46:06 2014] [warn] NameVirtualHost *:80 has no VirtualHosts

Конечно, это не прямой ответ, но я надеюсь, что он приблизит вас к ответу. :)