私はred5アプリケーションを持っています http://code.google.com/p/openmeetings red5で実行され、ポート5080と8443でアクセスできます
Ubuntu10.04にインストールしました
最終的な目的は、8443ではなく443のhttps経由でアクセスできるようにすることですが、最初は80を試して、問題がSSL証明書ではなくポート構成にあるようにすることを考えました。
Red5.propertiesファイルでポートを5080から80に変更しようとしましたが、起動に失敗します。
私が見たred5.logで
エラーo.a.coyote.http11.Http11Protocol-エンドポイントJava.net.BindExceptionの初期化中にエラーが発生しました:アクセスが拒否されました/0.0.0.0:80
私が見たerror.logで
エラーo.a.coyote.http11.Http11Protocol-エンドポイントJava.net.BindExceptionの初期化中にエラーが発生しました:アクセスが拒否されました/0.0.0.0:80
そして
エラーorg.red5.server.Tomcat.TomcatLoader-Tomcatのロード中にエラーが発生しました。コネクタをバインドできません。選択したポートを使用する権限がない可能性がありますorg.Apache.catalina.LifecycleException:プロトコルハンドラの初期化に失敗しました:Java.net.BindException:権限が拒否されました/0.0.0.0:80
ポート80には他に何もインストールまたは実行されていないため、これは「ルートである必要がある」状況であると推測されます。インターネットでアクセス可能なWebサービスをrootとして実行したくありません。
/ etc/default/Tomcat6で「#AUTHBIND = no」を「AUTHBIND = yes」に変更することでTomcatをポート80で実行できることは知っていますが、red5に類似したものは見つかりませんでした。
私は何も隠していないのですか、それともrootとして実行するよりも良い方法がありますか?
ありがとう!
私の知る限り、red5には、他の多くのデーモン(Apache、Tomcatなど)と同様に、 特権ポート をバインドしてroot権限を通常のユーザーアカウントに戻す機能がありません。 。
したがって、rootとして実行してポート80にバインドすることはできますが、rootとして実行されたままになり、非常に安全ではありません。
これを回避するには、 ある種のポート転送 を使用します。たとえば、xinetdにはポート転送が組み込まれているため、すでに他の目的で使用している場合は、単純なポート転送を設定できます。
service yourservicename
{
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
user = nobody
wait = no
redirect = 127.0.0.1 5080
port = 80
}
それはあなたが求めていたものではないことは知っていますが、アプリのリバースプロキシとしてApacheまたはnginxを使用するとうまくいく可能性があります。