多域开发的交钥匙dns服务器和代理。
localdev的Python项目详细描述
localdev
==
一个命令行工具,它将开发域(如*.myserver.dev)映射到在localhost上运行的一组服务器。这个工具是为了显著减少设置多域本地开发的
[痛苦](http://mikeferrier.com/2011/04/04/setting-up-wildcard-dns-on-localhost-domains-on-osx/)
。它取代了像bind或dnsmasq这样的dns
服务器,以及像apache或nginx这样的反向代理。
使用localdev,您可以停止使用/etc/hosts和配置文件。
相反,用一个命令连接开发服务器。
5001上的API服务器和端口5002上承载客户内容的服务器。
localdev通过将每个请求的主机名与规则匹配并将请求代理到相应的端口,将web请求路由到三个服务器。
您还可以将流量路由到运行在其他地方的
服务器,例如在您的局域网上:
sudo localdev--rules"*.here.dev=5000,*.there.dev=192.168.1.10:5000"
sudo是必需的,如果您使用默认端口53和80来处理dns和
http流量。要在没有sudo的情况下运行,您需要提供替代端口,
这对于http来说是很正常的,但是在53以外的端口上设置dns是非常奇怪的。如果这很重要,请参阅选项-d上的[reference](ref)。
它完全包含在一个进程中。
启动时,local dev启动两个服务:一个本地dns服务器,它将tld
(如.dev)映射到localhost,另一个反向代理,它根据配置规则将http请求路由到
服务器。
澄清此过程的趣闻轶事:
>;当您在浏览器中键入"mysite.dev"时,首先您的浏览器会向您的主DNS服务器发出DNS查询。如果安装正确,localdev会说"哟,服务器在localhost上"。然后,您的浏览器像"word"一样,向本地主机端口80发送http请求。然后localdev滑过来说"惊喜!,并根据您定义的规则将http请求代理到目标服务器。不管怎样,"你的浏览器说,
dns是一个基于[devdns]的轻量级服务器(https://github.com/colevscode/devdns)。
反向代理基于[quickproxy](https://github.com/colevscode/quickproxy),
它本身就构建在[tornado]之上(http://www.tornado web.org/)。
使用Mac或Linux:
对于Python用户:
\r设置localhost作为主DNS服务器<;a name="dnslist">;
您的浏览器需要使用它进行DNS解析。
这需要将本地主机(127.0.0.1)放在系统范围内DNS服务器列表的顶部。我还建议添加google的dns地址(8.8.8.8和
8.8.4.4)作为备份服务器(因为localdev不是通用的dns服务器)。
要在mac上执行此操作,请打开系统首选项并打开网络窗格。在
左侧,选择您使用的网络适配器(很可能是您的无线
适配器),然后单击高级。在dns选项卡下,单击dns服务器列表下的+按钮,然后按顺序添加127.0.0.1、8.8.8.8和8.8.4.4。
单击"确定",然后单击"应用"。
![](http://raw.github.com/colevscode/devdns/master/dnsconfig.png)
故障排除(mac)
不幸的是,这也意味着很难为
每个人制作一个现成的dns工具。以下是一些您可以检查localdev是否在
上不起作用的东西,首先尝试:
-使用"dig"查看localdev是否正确地将您的域名解析为127.0.0.1
dig mycolsite.dev
mysite.dev
;<;>;>;>;dig 9.8.3-p1<;>;>;mysite.dev
;;全局选项:+cmd
;;得到的答案:
;->;>;标题<;<;—操作码:查询,状态:无错误,ID:55138
;;标志:qr rd ra;查询:1,答案:1,权限:0,附加:0
;问题部分:
;mysite.dev.in a
;;回答部分:
mysite.dev.60 in a 127.0.0.1
;;查询时间:31毫秒
;;服务器:127.0.0.1 53(127.0.0.1)
;时间:2014年2月2日星期日21:44:45
;消息大小接收:44
如果没有应答部分,请确保已正确配置
[dns服务器列表](dns list)。
-使用"curl-v mysite.dev"查看是否有错误。根据错误的不同,
您可以尝试以下操作:
-`curl:(6)无法解析主机:mysite.dev`
在这种情况下,请尝试刷新DNS缓存并重新启动MDNSresponder:
sudo killall-hup mdnsrresponder
如果那不起作用,卸载并重新加载mdnsresponder:
sudo launchctl unload-w/system/library/launchdaemons/com.apple.mdnsresponder.plist
sudo launchctl load-w/system/library/launchdaemons/com.apple.mdnsresponder.plist
更多讨论[此处](http://apple.stackexchange.com/questions/26616/dns not resolving on mac os)。
-`curl:(52)来自服务器的空回复`
请参阅下面关于以前安装的讨论。
-如果以前安装了bind或dnsmasq,则可能必须禁用这些
服务。
卸载绑定:
sudo launchctl unload-w/system/library/launchdaemons/org.isc.named.plist
可能与dnsmasq类似。
-如果要将端口80转发到非限制端口,如8080,使用ipfw
或pf,这也可能是一个问题。尝试使用该端口运行localdev:
localdev-r mysite.dev=5000-p 8080
>通常,请检查防火墙设置以确保http流量可以到达
localdev。
[-r规则][-p端口][-t tld][-i ip]
[-s sslport][-d dns port][-v][-w]
config
存储代理规则的配置文件。格式
文件的每一行都包含一个源,后跟一个
目标主机:端口。(localhost是默认的
目标主机)例如:
*.myserver.dev 5001
-r规则,--规则规则
source=dest对的逗号分隔列表,其中source是带可选通配符的
域,dest是host:port。
(localhost是默认的目标主机)例如:
localdev-r myserver.dev=5000,*.myserver.dev=5001
-p port,--port port端口。(默认值80)
-t tld,--tld tld使用的tld为了当地的发展。默认值:"dev"。
-i ip,--ip ip本地域将路由到的ip。默认值:
'127.0.0.1'。
-s ssl port,--sslport sslport
如果设置,将在指定端口上启用SSL测试。
-d dnsport,--dnsport dnsport
dns的端口。(默认值53)
-v,--verbose将调试信息打印到控制台。
-w,--watch配置文件中的更改。(需要安装
看门狗)
==
一个命令行工具,它将开发域(如*.myserver.dev)映射到在localhost上运行的一组服务器。这个工具是为了显著减少设置多域本地开发的
[痛苦](http://mikeferrier.com/2011/04/04/setting-up-wildcard-dns-on-localhost-domains-on-osx/)
。它取代了像bind或dnsmasq这样的dns
服务器,以及像apache或nginx这样的反向代理。
使用localdev,您可以停止使用/etc/hosts和配置文件。
相反,用一个命令连接开发服务器。
5001上的API服务器和端口5002上承载客户内容的服务器。
localdev通过将每个请求的主机名与规则匹配并将请求代理到相应的端口,将web请求路由到三个服务器。
您还可以将流量路由到运行在其他地方的
服务器,例如在您的局域网上:
sudo localdev--rules"*.here.dev=5000,*.there.dev=192.168.1.10:5000"
sudo是必需的,如果您使用默认端口53和80来处理dns和
http流量。要在没有sudo的情况下运行,您需要提供替代端口,
这对于http来说是很正常的,但是在53以外的端口上设置dns是非常奇怪的。如果这很重要,请参阅选项-d上的[reference](ref)。
它完全包含在一个进程中。
启动时,local dev启动两个服务:一个本地dns服务器,它将tld
(如.dev)映射到localhost,另一个反向代理,它根据配置规则将http请求路由到
服务器。
澄清此过程的趣闻轶事:
>;当您在浏览器中键入"mysite.dev"时,首先您的浏览器会向您的主DNS服务器发出DNS查询。如果安装正确,localdev会说"哟,服务器在localhost上"。然后,您的浏览器像"word"一样,向本地主机端口80发送http请求。然后localdev滑过来说"惊喜!,并根据您定义的规则将http请求代理到目标服务器。不管怎样,"你的浏览器说,
dns是一个基于[devdns]的轻量级服务器(https://github.com/colevscode/devdns)。
反向代理基于[quickproxy](https://github.com/colevscode/quickproxy),
它本身就构建在[tornado]之上(http://www.tornado web.org/)。
使用Mac或Linux:
对于Python用户:
\r设置localhost作为主DNS服务器<;a name="dnslist">;
您的浏览器需要使用它进行DNS解析。
这需要将本地主机(127.0.0.1)放在系统范围内DNS服务器列表的顶部。我还建议添加google的dns地址(8.8.8.8和
8.8.4.4)作为备份服务器(因为localdev不是通用的dns服务器)。
要在mac上执行此操作,请打开系统首选项并打开网络窗格。在
左侧,选择您使用的网络适配器(很可能是您的无线
适配器),然后单击高级。在dns选项卡下,单击dns服务器列表下的+按钮,然后按顺序添加127.0.0.1、8.8.8.8和8.8.4.4。
单击"确定",然后单击"应用"。
![](http://raw.github.com/colevscode/devdns/master/dnsconfig.png)
故障排除(mac)
不幸的是,这也意味着很难为
每个人制作一个现成的dns工具。以下是一些您可以检查localdev是否在
上不起作用的东西,首先尝试:
-使用"dig"查看localdev是否正确地将您的域名解析为127.0.0.1
dig mycolsite.dev
mysite.dev
;<;>;>;>;dig 9.8.3-p1<;>;>;mysite.dev
;;全局选项:+cmd
;;得到的答案:
;->;>;标题<;<;—操作码:查询,状态:无错误,ID:55138
;;标志:qr rd ra;查询:1,答案:1,权限:0,附加:0
;问题部分:
;mysite.dev.in a
;;回答部分:
mysite.dev.60 in a 127.0.0.1
;;查询时间:31毫秒
;;服务器:127.0.0.1 53(127.0.0.1)
;时间:2014年2月2日星期日21:44:45
;消息大小接收:44
如果没有应答部分,请确保已正确配置
[dns服务器列表](dns list)。
-使用"curl-v mysite.dev"查看是否有错误。根据错误的不同,
您可以尝试以下操作:
-`curl:(6)无法解析主机:mysite.dev`
在这种情况下,请尝试刷新DNS缓存并重新启动MDNSresponder:
如果那不起作用,卸载并重新加载mdnsresponder:
sudo launchctl unload-w/system/library/launchdaemons/com.apple.mdnsresponder.plist
sudo launchctl load-w/system/library/launchdaemons/com.apple.mdnsresponder.plist
更多讨论[此处](http://apple.stackexchange.com/questions/26616/dns not resolving on mac os)。
-`curl:(52)来自服务器的空回复`
请参阅下面关于以前安装的讨论。
-如果以前安装了bind或dnsmasq,则可能必须禁用这些
服务。
卸载绑定:
sudo launchctl unload-w/system/library/launchdaemons/org.isc.named.plist
可能与dnsmasq类似。
-如果要将端口80转发到非限制端口,如8080,使用ipfw
或pf,这也可能是一个问题。尝试使用该端口运行localdev:
localdev-r mysite.dev=5000-p 8080
>通常,请检查防火墙设置以确保http流量可以到达
localdev。
[-r规则][-p端口][-t tld][-i ip]
[-s sslport][-d dns port][-v][-w]
config
存储代理规则的配置文件。格式
文件的每一行都包含一个源,后跟一个
目标主机:端口。(localhost是默认的
目标主机)例如:
-r规则,--规则规则
source=dest对的逗号分隔列表,其中source是带可选通配符的
域,dest是host:port。
(localhost是默认的目标主机)例如:
localdev-r myserver.dev=5000,*.myserver.dev=5001
-p port,--port port端口。(默认值80)
-t tld,--tld tld使用的tld为了当地的发展。默认值:"dev"。
-i ip,--ip ip本地域将路由到的ip。默认值:
'127.0.0.1'。
-s ssl port,--sslport sslport
如果设置,将在指定端口上启用SSL测试。
-d dnsport,--dnsport dnsport
dns的端口。(默认值53)
-v,--verbose将调试信息打印到控制台。
-w,--watch配置文件中的更改。(需要安装
看门狗)