我在我的Mac上运行本地Apache进行开发,并且还有运行在http://127.0.0.1:8000/ node.js服务器。
我使用Apache项目的.dev域,并希望.node域redirect到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/ 。
我在这里错过了什么?
<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>
这个怎么用?
难道你不是在讨厌新人的错误,而是为了争取一个答案?
以下是在这里做错了什么:
localhost总是一个犹太人的事情。 对于在Mac上的自制dnsmasq,这将做的伎俩:
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当前不是有效的顶级域名。 将其更改为有效的内容,例如.no ,可以防止烦人的Safari在请求(如test.no上启动Googlesearch。 (告别真实的.no站点。) 罗伯特是你父亲的兄弟