ユーザーアカウントに(自作経由で) nginx(パッセンジャー付き )をインストールしました。単純なnginxで宣言された場所でRails3アプリケーションを応答させることができなかったため、数時間の間、私は物事が機能しないと思っていました。多くの審議 ( AKA 試行錯誤) の後、私はそれが機能するという結論に達しましたが、ポート 80 の使用を拒否しました。
自作のインストールはユーザーごとのインストールであるため、ルートのみのポート(つまり、ポート1024以下)では実行できないはずですが、自作自体(およびネット上のさまざまなソース)は、単に実行することを示唆していますサーバーは、sudo nginx
ポート 80 を使用できるようにするだけで十分です。
これらは、機能する構成の重要なファイルです。
/etc/ホスト:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 doomhub.local localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
/usr/local/etc/nginx/nginx.conf:
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
passenger_root /Users/ellmo/.rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.18/;
passenger_ruby /Users/ellmo/.rvm/rubies/ruby-1.9.3-p125/bin/ruby;
include mime.types;
default_type application/octet-stream;
access_log logs/access.log; #main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
server_name doomhub.local;
listen 8080;
root /Users/ellmo/rails/doomhub/public;
passenger_enabled on;
passenger_use_global_queue on;
rails_env development;
}
}
アプリケーションのサーバー ポートを に変更すると80
、当然、再起動時に次のメッセージが表示されます。
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
...しかしsudo
、エラーは表示されず、プロセスはroot
所有者として開始されます。ただし、ブラウザーで開いhttp://doomhub.local
ても何も返されません (技術的には、「ブラウザーはアドレスを解決できませんでした」というエラーですが、他のエラーや nginx エラーは発生しません)。ログも何も取得しません。
リスニング ポートを 8080 (またはその他のもの) に戻すと、通常のユーザーとして実行すると魅力的に機能しますがhttp://doomhub.local
、http://doomhub.local:8080
.
OSX アプリがポート 80 でリッスンするのをブロックするものはありますか? ご覧のとおり、私はそれを使用できます。そのため、途中で他のプロセスはありません。それは何も聞いていません。
8080
ブラウザで「通常の」httpポートとして扱う方法はありますか?
編集:
Jan Schejbalが提案したようにパッセンジャー ユーザーを指定しても問題は解決しませんでした。しばらくして、このすばらしい投稿で説明されているように、 (クリア ルビー バイナリの使用を許可するのではなく)パッセンジャー用のrvmラッパーを作成することになりました。
http://everydayrails.com/2010/09/13/rvm-project-gemsets.html
パッセンジャー/バンドルのみの rvm ラッパーを作成したおかげで、 nginx をrootとして起動したときにアプリケーションを実行することができました。ルートのみとユーザーが許可するリッスン ポートの両方を指定できます (つまり、 8080 と 81 の両方をテストしました)。アプリケーションは、ラッパー バイナリに関連しないすべての gem を使用しても問題なく提供されます。まだ...
...それでも、ポート 80 ではまったく何も得られません。