FacebookのBunnylol検索エンジンに触発されました。現在GitHubで営業しているバージョンはかなり古く、古い依存関係がいくつかあったので、よりモダンなものを書く方が簡単だと思いました。これはまだかなり基本的なものであり、おそらく後で遭遇するセキュリティホールがあります。何かを地面から取り出したかっただけで、より多くの機能を追加します。
リンクにアクセスして、私がホストしているこのバージョンを使用してセットアップを使用してください。
現在サポートされているコマンドのリスト
g [insert query] Googleの検索p [insert class number]特典を検索してください。ジャックのためだけにパーソナライズされています笑fb [insert query] Facebookで検索。 FBホームページのデフォルトcpp [insert query] cppreference.comで構文CPP用語を検索するw [insert query] Wikipediaを検索し、英語Wikipediaページでデフォルトyt [insert query] YouTube検索を行います。クエリが渡されない場合、デフォルトはYouTubeホームページになりますgm [insert number from 0-n where n = number of gmail accounts - 1] Gmailを開きます。引数が特定されていない場合、最初のアカウントを開きます。引数で代替アカウントを開くことができますhelpこれを拡張することは今のところかなり直感的だと思います。コマンドクラスに新しいメソッドを追加するだけです。 jack_bunny.pyファイルですべてが起こっているため、少し混乱する可能性があります。おそらく、時間があるときにこれをモジュール化するでしょう。
NginxとGunicornで構成されたAmazon EC2サーバーでこれをホストしたので、通過したステップを進みます。
最初のステップは、これを実行するサーバーでこのリポジトリをクローンし、すべての依存関係をダウンロードすることです。これらはすべてrequirements.txt内にある必要があるため、 pip3 install -r /path/to/requirements.txtのようなものが機能するはずです。問題が発生した場合、これが実際に使用している唯一のPythonライブラリはflaskとwikipediaであるため、それらをダウンロードすることで問題が解決するはずです。
これをホストするために必要な追加のパッケージがあります。 1つ目はnginxです。これをインストールするには、 sudo apt-get install nginx使用するだけです。また、 gunicornをインストールする必要があり、これを行うにはpip3 install gunicorn使用できます。
この背後にあるアイデアは、 gunicornを使用して、未使用のポートのLocalHostでこれを実行することです。次に、 nginx逆プロキシとして使用して、 gunicornに受け取ったリクエストを引き渡し、 gunicornユーザーに与えられるnginxにそれを提供します。
では、どうやってこれを行うのでしょうか?
まず、 gunicornを走らせたいです。実行するコマンドはgunicorn jack_bunny:app -p jack_bunny.pid -Dです。このコマンドでは、 jack_bunny .pyのないファイル名を表し、 app Flaskアプリを表します。 -Dタグを追加して、これが閉じたときでさえ、バックグラウンドで実行されるようにします。 -p jack_bunny.pidこのファイルにprocess_idを保存するので、このプロセスを殺したい場合は-9を殺すことができます。
これはまだローカルでのみ実行されているため、 nginxをセットアップする必要があります。
最初に/etc/nginx/sites-available/jack_bunnyでこの新しい構成ファイルを作成しました
# /etc/nginx/sites-available/jack_bunny
# Redirect www.[insert server name].com to [insert server name].com
server {
server_name www.[insert server name].com;
rewrite ^ http://[insert server name].com/ permanent;
}
# Handle requests to [insert server name].com on port 80
server {
listen 80;
server_name [insert server name].com;
# Handle all locations
location / {
# Pass the request to Gunicorn
proxy_pass http://127.0.0.1:8000;
# Set some HTTP headers so that our app knows where the
# request really came from
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
次に、ここでSymlinkを作成しました。
$ sudo ln -s
/etc/nginx/sites-available/jack_bunny
/etc/nginx/sites-enabled/jack_bunny
nginxを再起動した後、行くのがいいはずです!
nginx構成の問題に遭遇した場合は、エラーログを確認して、何が間違っているのかを確認してください。私が遭遇したことの1つは、サーバー名が長すぎることであり、これによりサーバーハッシュ名のエラーが得られました。 Line server_names_hash_bucket_size 128;私のnginx構成ファイル/etc/nginx/nginx.confに。
サーバーにフラスコアプリを展開する方法はたくさんありますので、これを行う必要はありません。これが最速の方法であることがわかりました。参照のために、これは私が従ったガイドです、それはかなり詳細です。