受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 。
有多种方法可以在服务器上部署烧瓶应用程序,因此您不必这样做。我只是发现这是最快的方法。作为参考,这是我遵循的指南,非常详细。