Terinspirasi oleh mesin pencari Bunnylol Facebook. Versi yang saat ini terbuka di GitHub cukup tua dan memiliki beberapa ketergantungan lama jadi saya pikir akan lebih mudah untuk menulis yang lebih modern. Yang ini masih cukup mendasar dan kemungkinan besar memiliki lubang keamanan yang akan saya temui nanti. Hanya ingin mendapatkan sesuatu dari tanah dan saya akan menambahkan lebih banyak fitur waktu yang memungkinkan.
Kunjungi tautan ke pengaturan menggunakan versi ini yang saya hosting.
Daftar perintah yang saat ini didukung
g [insert query] Mencari Googlep [insert class number] buat pencarian piazza, agak dipersonalisasi hanya untuk jack lolfb [insert query] Pencarian di Facebook. default di beranda fbcpp [insert query] Mencari istilah CPP sintaksis di cppreference.comw [insert query] pencarian wikipedia, default di halaman wikipedia Inggrisyt [insert query] Buat pencarian YouTube. Jika tidak kueri dilewati, default ke beranda YouTubegm [insert number from 0-n where n = number of gmail accounts - 1] Membuka Gmail. Jika tidak ada argumen yang ditentukan, buka akun pertama. Dapat membuka akun alternatif dengan argumenhelp Mengembalikan daftar perintah yang dapat digunakan Saya pikir memperluas ini cukup intuitif untuk saat ini. Cukup tambahkan metode baru ke kelas perintah. Mungkin sedikit membingungkan karena semuanya terjadi dalam file jack_bunny.py , saya mungkin akan memodulasi ini nanti ketika saya punya waktu.
Saya meng -host ini di server Amazon EC2, dikonfigurasi dengan Nginx dan Gunicorn jadi saya akan berjalan melalui langkah -langkah yang saya lalui.
Langkah pertama adalah mengkloning repo ini di server yang ingin Anda jalankan dan unduh semua dependensi. Ini semua harus ada di file requirements.txt sehingga sesuatu seperti pip3 install -r /path/to/requirements.txt harus berfungsi. Jika Anda mengalami masalah apa pun, satu -satunya perpustakaan Python yang benar -benar digunakan adalah flask dan wikipedia sehingga mengunduh yang harus menyelesaikan masalah.
Ada paket tambahan yang Anda butuhkan untuk meng -host ini. Yang pertama adalah nginx . Untuk menginstal ini, Anda cukup menggunakan sudo apt-get install nginx . Kami juga perlu menginstal gunicorn dan melakukan ini Anda dapat menggunakan pip3 install gunicorn .
Gagasan di balik ini adalah bahwa kita akan menggunakan gunicorn untuk menjalankan ini di localhost di beberapa pelabuhan yang tidak digunakan. Kami kemudian akan menggunakan nginx sebagai proxy terbalik sehingga akan menyerahkan permintaan yang diterima ke gunicorn dan kemudian gunicorn akan melayani itu ke nginx yang akan diberikan kepada pengguna.
Jadi bagaimana kita melakukan ini?
Pertama, kami ingin menjalankan gunicorn . Perintah yang akan dijalankan adalah gunicorn jack_bunny:app -p jack_bunny.pid -D . Dalam perintah ini, jack_bunny mewakili nama file tanpa .py dan app mewakili aplikasi flask. Kami menambahkan tag -D sehingga ini akan berjalan di latar belakang, bahkan ketika kami menutup. -p jack_bunny.pid menyimpan proses_id ke file ini jadi jika Anda ingin membunuh proses ini, Anda bisa membunuh -9 itu.
Sekarang kita hanya perlu menyiapkan nginx karena ini masih hanya berjalan secara lokal.
Saya pertama kali membuat file konfigurasi baru ini di /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;
}
}
Lalu saya membuat symlink di sini.
$ sudo ln -s
/etc/nginx/sites-available/jack_bunny
/etc/nginx/sites-enabled/jack_bunny
Setelah memulai kembali nginx Anda harus baik untuk pergi!
Jika Anda mengalami beberapa masalah konfigurasi nginx , periksa log kesalahan untuk melihat apa yang bisa salah. Satu hal yang saya temui adalah nama server saya terlalu lama dan ini memberi saya beberapa kesalahan nama hash server. Saya menyelesaikan ini dengan menambahkan baris server_names_hash_bucket_size 128; ke file konfigurasi nginx saya di sini /etc/nginx/nginx.conf .
Ada banyak cara untuk menggunakan aplikasi Flask di server sehingga Anda tidak perlu melakukan ini. Saya baru saja menemukan ini sebagai cara tercepat. Untuk referensi ini adalah panduan yang saya ikuti, ini cukup detail.