0

追加のApache2仮想ホストファイルを使用して、RoRアプリケーションをサーバーにデプロイします。

<VirtualHost *:80>
    # ServerName ubuntu
    DocumentRoot /var/www/myapp/current/public
    PassengerEnabled off 
    ProxyPass / http://127.0.0.1:9051
    ProxyPassReverse / http://127.0.0.1:9051

    <IfModule mod_rewrite.c>
      RewriteEngine On

      # Redirect all requests to the maintenance page if present
      RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png)$
      RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
      RewriteCond %{SCRIPT_FILENAME} !maintenance.html
      RewriteRule ^.*$ /system/maintenance.html [L] 
    </IfModule>

</VirtualHost>

そして私はPassengerを使用してそれを開始します:

passenger start -a 127.0.0.1 -p 9051 -e production -d

これはUbuntuサーバーです:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
Release:    12.04
Codename:   precise

そして、ポートはリッスンしています:

plee@ubuntu:~$ sudo lsof -i :9051
[sudo] password for plee:
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   1016 plee    4u  IPv4 168135      0t0  TCP localhost:9051 (LISTEN)
nginx   1017 plee    4u  IPv4 168135      0t0  TCP localhost:9051 (LISTEN)
nginx   1017 plee    5u  IPv4 225556      0t0  TCP localhost:9051->localhost:44586 (ESTABLISHED)
ruby    1018 plee    5u  IPv4 225555      0t0  TCP localhost:44586->localhost:9051 (ESTABLISHED)

問題は、私のアプリにアクセスできるのはhttp://localhost:9051

サーバーのIPアドレスを使用して別のマシンから接続しようとすると、次のようになります。http://10.50.10.75:9051

Google Chromeは私に:

Google Chrome could not connect to 10.50.10.75:9051

私を助けてください!

ありがとう。

4

2 に答える 2

2

あなたは頑張りすぎています。あなたがあなたのようなサーバー上にいて、アプリがさまざまなポートで実行されている場合 (そして、それらはおそらく dev / staging ですよね?)、ポート:9501でこのアプリにアクセスしたいだけの場合、簡単な方法は次のとおりです。アパッチを捨てる。必要なのはパッセンジャーだけで、 -a オプションなしで次のように開始します。

passenger start -p 9051 -e production -d

それでおしまい; あなたは終わった。(ファイアウォール、おそらくufwがそのポートをブロックしていないことを確認したいかもしれませんが、まだ問題がある場合にテストする唯一のことです。)

そして最後のアドバイス: この種のものをテストするためにブラウザーを使用しないでください。curlを使用します。例えば、

curl --head http://x.y.z.a:9051
于 2012-07-11T19:05:33.693 に答える
0

それにアクセスしたい場合は、別のポートでアクセスする必要があります。そのための仮想ホストエントリを追加する必要があります。また、ポート 80 とともにそのポートをリッスンする必要があります。

ここにあなたが必要とするものがあります

#set the mod_passenger path **MAY BE DIFFERENT FOR YOU**
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.1.3/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.1.3
PassengerRuby /usr/bin/ruby1.8

#Listen to port 9501
Listen 9501

#add virtual host enty for port 9501
<VirtualHost *:9501>
        ServerName myservername
        DocumentRoot /var/www/tut/public

        <Directory /var/www/tut/public>
                Allow from all
                Options -MultiViews
        </Directory>


</VirtualHost>

: 今はコマンド ラインからパッセンジャーを起動する必要はありません。これで既に起動しているはずです。

これは私にとってはうまくいきました。

于 2012-07-11T05:58:52.317 に答える