Pow 和 Nginx 和谐共处
2016-10-13 本文已影响86人
老码农不上班
在 macOS 下开发Rack 应用,例如 Rails, Sinatra 应用,Pow 简直就是神器,其设置极其简单,做外包项目必备。
例如使用 Rails 框架开发一个钱包项目 wallet, 不需要 rails s 或者使用 puma, unicorn 跑程序,只要安装好 pow 并把服务跑起来,在本地通过 wallet.dev 访问。需要添加添加软链
ln -s path/to/wallet ~/.pow/wallet
但是,如果在内网中其他机器访问你的机器的网页(80 端口),或者你本地访问 http://localhost
, 一般这种场景出现在开发客户端接口,就会访问不到。原因是 pow 把访问 80 端口的所有访问重定向了。
详细的原因是 Pow 使用了 resolver
和 ipfw
规则把所有请求80 端口重定向到 Pow 代理的根目录。
cat /etc/resolver/dev
# Lovingly generated by Pow
nameserver 127.0.0.1
port 20560
sudo ipfw list
00100 0 0 fwd 127.0.0.1,20559 tcp from any to me dst-port 80
65535 allow ip from any to any
那么怎么解决这个问题呢?
首先echo "export POW_DST_PORT=19999" >> ~/.powconfig
最后curl get.pow.cx | sh
你在本地浏览器中访问 http://localhost
,或者 http://wallet.dev/
都能访问到 Rack 应用