Proxy

在 localhost 轉發代理 webrick,瘦,獨角獸到外部 host.com/http-bind

  • September 12, 2012

我在一個 Rails 項目中工作,我需要一個 /http-bind 代理並且找不到任何關於此的內容,或者找到一個資源來說明這是可能的。 我在開發環境中需要這個轉發知道它可以使用 unicorn + nginx 來轉髮帶有 unicorn 的代理但是我正在尋找一種簡單快速的方法來在我的開發環境中本地執行它….所以,是 unicorn、thin 還是webrick 能夠進行 http-bind 代理轉發嗎?

* host.com/http-bind ( xmpp http-bind ) already running

* localhost:3000 THIN server posts to /http-bind returns a 404 not found currently nothing mapped.

是否可以轉發流量

http://localhost:3000/http-bind 

my external http://host.com/http-bind ? 

Thin 和 webrick 之類的伺服器非常適合原型設計,unicorn 和 Passenger 是很棒的應用程序伺服器,但它們並非設計為功能齊全的 Web 伺服器。對於這類事情,您確實應該使用實際的 Web 伺服器(例如 apache 或帶有乘客的 nginx),因為它提供了足夠的靈活性來執行這些類型的重定向和您在生產中需要的其他復雜配置。

你可以很容易地把 nginx 丟在前面;然後它會在埠 80 上響應,並在埠 3000 上進行代理請求。最小的範例配置可能如下所示

upstream thin {
   server 127.0.0.1:3000;
}
server {
   listen   80;
   server_name .example.com;

   access_log /var/www/myapp.example.com/log/access.log;
   error_log  /var/www/myapp.example.com/log/error.log;
   root       /var/www/myapp.example.com;
   index      index.html;

   location / {
       proxy_set_header  X-Real-IP  $remote_addr;
       proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header  Host $http_host;
       proxy_redirect    off;
       try_files $uri $uri/ @ruby;
   }

   location @ruby {
       proxy_pass http://thin;
   }
}

然後你可以location為 bosh添加一個像這樣的東西

   location /http-bind/ {
       proxy_buffering off;
       tcp_nodelay on;
       keepalive_timeout 55;
       proxy_pass http://xmpp.server:5280/xmpp-httpbind/;
   }

引用自:https://serverfault.com/questions/426607