私はすべて*.dev
リクエストをポート80でキャッチし、Rack Proxyを使用して適切なRackプロジェクトに送信しようとしています。私は要求をキャッチすることができ、URIに基づいて私はconfig.ru
を特定のフォルダに探します。私が見つけられたら、ポート3000でサーバーを起動します。Rack Proxyを使用しているとき接続が拒否されました
その後、ポート80でリクエストを受信すると、HTTP_HOST
をlocalhost:3000
に設定しようとしていますが、メッセージUnexpected error while processing request: Connection refused - connect(2) for "localhost" port 3000
。 localhost:3000
を通じてアプリケーションにアクセスできますが、*.dev
ドメインにはアクセスできません。私はすでに別のポートを使ってみましたが、どちらも動作していないので、それを実行しているユーザーと何か関係があると思います。しかし、私は誰かがこれを手伝ってくれることを願っています。
require 'rack-proxy'
class AppProxy < Rack::Proxy
def rewrite_env(env)
request = Rack::Request.new(env)
site = request.host[0..-5]
uid = File.stat(__FILE__).uid
path = Etc.getpwuid(uid).dir + '/Software/Applications/'
front_controller = "#{path}#{site}/config.ru"
if File.file?(front_controller)
system "rackup -p 3000 -D #{front_controller} "
env["HTTP_HOST"] = "localhost:3000"
else
raise Exception.new "Not found"
end
env
end
end
run AppProxy.new
EDIT:
ruby 56247 root 10u IPv4 0x727d74bd0b95bd9b 0t0 TCP *:80 (LISTEN)
ruby 56247 root 11u IPv4 0x727d74bd0a3b9bfb 0t0 TCP 127.0.0.1:80->127.0.0.1:52773 (ESTABLISHED)
ruby 56255 root 12u IPv6 0x727d74bd094e3c8b 0t0 TCP [::1]:3000 (LISTEN)
I:私は、ポート80と3000のために、以下の結果を得るサーバとsudo lsof -i -n -P | grep TCP
を実行した後、ポート3000でリッスンし、何かがあれば私がチェックしました私はこれの正確な意味を知らないので、これが何か役に立っているのか分からない。