Я запускаю локальный Apache на своем Mac для разработки, а также имею сервер node.js, работающий на http://127.0.0.1:8000/
.
я использую .dev
домен для проектов Apache и хотел бы .node
домен для перенаправления на сервер node.js. У меня есть виртуальные хосты, настроенные следующим образом:
<VirtualHost *.dev:80>
VirtualDocumentRoot "/www/sites/%1/wwwroot"
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</VirtualHost>
<VirtualHost *.node:80>
ServerName sites.node
ProxyPass "/" "http://localhost:8000"
ProxyPassReverse "/" "http://localhost:8000"
</VirtualHost>
Однако когда я пытаюсь применить эти настройки, я получаю сообщение об ошибке:
[core:error] [pid 8594] (EAI 8)nodename nor servname provided, or not known:
AH00547: Could not resolve host name *.node -- ignoring!
Я должен отметить, что .dev
домен работает должным образом, а сервер node.js доступен по адресу http://localhost:8000/
, только не, скажем, http://test.node/
.
Я что-то упустил?
Разве вы не ненавидите, когда люди делают ошибки новичков и бегут в обмен на ответ?
Вот что здесь делается неправильно:
localhost
всегда кошерное дело.Для homebrew dnsmasq на Mac это поможет:
echo 'address=/.no/127.0.0.1' > $(brew --prefix)/etc/dnsmasq.conf
И тогда OS X нужно указать, что нужно искать собственный домен локально:
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/no'
Кастомных доменов действительно 101.
localhost
без добавления настраиваемого порта :8000
.Как это:
<VirtualHost *.no:80>
ServerName sites.no
ProxyPreserveHost On
ProxyPass "/" "http://localhost:8000/"
ProxyPassReverse "/" "http://localhost:8000/"
</VirtualHost>
<VirtualHost *.dev:80>
VirtualDocumentRoot "/www/sites/%1/wwwroot"
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</VirtualHost>
.node
в настоящее время не является действительным доменом верхнего уровня, согласно IANA. Измените его на что-то действительное, например .no
, предотвращает запуск надоедливого Safari поиска в Google по таким запросам, как test.no
. (Попрощайтесь с настоящим .no
сайты там.)А Роберт брат твоего отца.
<VirtualHost *.dev:80>
VirtualDocumentRoot "/www/sites/%1/wwwroot"
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</VirtualHost>
<VirtualHost *.node:80>
ServerName sites.node
ProxyRequests on
RewriteEngine on
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass "/" "http://localhost:8000"
ProxyPassReverse "/" "http://localhost:8000"
</VirtualHost>
Как это работает?