受Facebook的Bunnylol搜索引擎的啟發。當前在Github上打開的版本很舊,並且具有一些舊的依賴性,因此我認為只編寫一個更現代的版本會更容易。這個仍然是基本的,很可能有以後會遇到的安全孔。只是想把一些東西放下,我將添加更多功能允許的時間。
使用我託管的此版本訪問鏈接到設置。
當前支持命令的列表
g [insert query]搜索Googlep [insert class number]進行廣場搜索,有點個性化的只是為傑克大聲笑fb [insert query]在Facebook上搜索。 FB主頁上的默認值cpp [insert query]在cppreference上搜索句法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文件中的一切都發生了,我可能會在稍後再有時間進行模塊化。
我在Amazon EC2服務器上託管了它,該服務器配置為Nginx和Gunicorn,因此我將瀏覽經歷的步驟。
第一步是在要運行的服務器上克隆此存儲庫並下載所有依賴項。這些都應該在requirements.txt文件pip3 install -r /path/to/requirements.txt 。如果您遇到任何問題,那麼真正使用的唯一Python庫是flask和wikipedia ,因此下載這些庫應該可以解決任何問題。
您需要託管此軟件包。第一個是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代表燒瓶應用程序。我們添加-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配置問題,請檢查錯誤日誌以查看可能發生的事情。我遇到的一件事是我的服務器名稱太長了,這給了我一些服務器名稱錯誤。我通過添加行server_names_hash_bucket_size 128;到我的nginx配置文件,此處/etc/nginx/nginx.conf 。
有多種方法可以在服務器上部署燒瓶應用程序,因此您不必這樣做。我只是發現這是最快的方法。作為參考,這是我遵循的指南,非常詳細。