6

AmazonEC2インスタンスで単純なPythonhttpサーバーをセットアップしてアクセスしようとしています。サーバーはlocalhost:80でローカルに動作しますが、EC2インスタンスで動作させることができません。

エラスティックIPをインスタンスに接続しましたが、少なくともそのIPのsshにアクセスするために機能します。

問題は、HTTPServerのserver_addressを正しく設定していないことだと思います。PythonHTTPServerの ドキュメント 実際には手がかりがないため、自宅で、HTTP要求をコンピューターのローカルIP192.168.1に転送するようにルーターを構成しました。 xx

これはセキュリティグループの問題である可能性があると考えたため、ソース0.0.0.0/0(すべての着信IPを許可する必要があると考えた)でインバウンドHTTPを追加し、変更するオプションなしでポート80を設定しました。

さらに、ポート80でsudoの下でサーバースクリプトを実行することは、潜在的なセキュリティリスクであると思います。80ではなく8080のような別のポートでリクエストを転送する方法はありますか?

4

2 に答える 2

3

セキュリティ グループに対して、ポート 8080 を許可するルールを作成できます (「カスタム TCP ルール」を実行し、ポート範囲に 8080 を入力します)。

HTTPServer がループバックにバインドされている可能性があります。アドレスを 0.0.0.0 (すべてのインターフェイス) に設定し、ポートを 8080 に設定し、セキュリティ グループで 8080 を開きます。

于 2013-03-11T21:10:05.363 に答える
2

セキュリティの観点から、通常の http サーバーの背後でスクリプトを実行する方がよい場合があります。

開始する必要があるNginXの構成を次に示します (このファイルを に配置します/etc/nginx/conf.d/)。

upstream myscript  {
  server localhost:8080;
}

server {
    server_name _;
    listen 80;
    location = / {
        proxy_pass  http://myscript;
    }
}

この設定では、ポート 8080 でスクリプトを実行します (Python スクリプトでserver_address = ('localhost', 8080)構成するために使用します)。HTTPServer

したがって、クエリがポート 80 で nginx にヒットすると、スクリプトが担当する localhost ポート 8080 に転送されます。

于 2013-02-28T11:00:07.703 に答える