на debian, lighttpd apache2 с использованием порта 80, lighttpd throws: address already use error [закрыто]

На днях я купил сервер linode (linode.com). Я пытался запустить lighttpd и apache2 на одном порту, используя lighttpd для статических файлов. Поскольку linode предоставляет только ОДИН адрес ipv4, я попытался привязать lighttpd к адресу ipv6. Вот где я каждый раз получал одну и ту же ошибку: не могу выполнить привязку к порту [ipv6] 80, который уже используется. Пробовал привязать ipv4-адрес. Все заработало. Пожалуйста, помогите мне, это сводит меня с ума последние два дня.

мой файл lighttpd.conf: (адрес ipv6 неверен)

server.modules = (
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_redirect",
#       "mod_rewrite",
)

server.document-root        = "/var/www"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80
server.bind         = "2600:3c02::0000"
server.use-ipv6         = "enable"
#server.pid-file            = "/var/run/lighttpd.pid"


index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

# default listening port for IPv6 falls back to the IPv4 port
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"


### ipv6 ###
$SERVER["socket"] == "[2600:3c02::0000]:80" {
#   accesslog.filename  = "var/log/lighttpd/ipv6/access.log"    
#   server.document-root = "/var/www/"
#   server.error-handler-404 = "/index.php?error=404"
}

и сообщение об ошибке: не удается выполнить привязку к порту, 2600: 3c02 :: 0000 Адрес уже используется.

-1
задан 25 October 2013 в 11:31
2 ответа

Вы выполняете привязку к [2600: 3c02 :: 0000]: 80 с

server.port                 = 80
server.bind         = "2600:3c02::0000"

и

$SERVER["socket"] == "[2600:3c02::0000]:80" {
...
}

. Это означает, что вы дважды выполняете привязку к одному и тому же адресу. Удалите блок $ SERVER ["socket"] , и все будет в порядке.

( Edit : Таким образом вы получите то, что просили; но я сомневаюсь в вашей «настройке» в общем, это хорошая идея; как указал Халфгаар, один веб-сервер должен прокси-сервер для другого; обычно тот, который обслуживает статические файлы, должен быть общедоступным, видимым, проксируя другой скрытый)

1
ответ дан 5 December 2019 в 19:16

Если если вы хотите обслуживать статические файлы с помощью lighttpd / nginx и динамические с помощью apache, вам необходимо запустить lightttpd / nginx на порту 80 (или 443, если ssl), а apache на чем-то еще. Затем вы настраиваете lightttpd / nginx в качестве прокси для пересылки всего, что не статично, в apache на альтернативный порт. Можно найти множество примеров.

2
ответ дан 5 December 2019 в 19:16

Теги

Похожие вопросы