Flask là một microframework được viết bằng Python để phát triển các ứng dụng web hiện đại và API (Giao diện lập trình ứng dụng). Nó dựa trên bộ công cụ Werkzeug và mẫu Jinja2. Thay vì sử dụng kiến trúc phức tạp, Flask là một khuôn khổ web nhỏ dễ mở rộng lõi và dễ học vì Flask có ít mã hơn. Flask không bao gồm ORM, nhưng vẫn có các tính năng thú vị như định tuyến URL và công cụ mẫu.
Gunicorn hay "Green Unicorn" là Máy chủ HTTP WSGI với chế độ công nhân trước khi phân nhánh. Nó được chuyển từ dự án Unicorn của Ruby. Gunicorn có thể được ghép nối với một số khuôn khổ web, nó nhẹ trên tài nguyên máy chủ và nhanh. Gunicorn đứng giữa ứng dụng của bạn và máy chủ web, vì vậy bạn có thể ghép nối Gunicorn với máy chủ web như Nginx và Apache2.
Trong hướng dẫn này, chúng tôi sẽ chỉ cách cài đặt và cấu hình Flask Python Web Framework với Gunicorn và Nginx trên máy chủ Rocky Linux. Bạn cũng sẽ học cách thiết lập Supervisord làm trình quản lý quy trình để quản lý ứng dụng Python Flask.
Tất cả các gói phụ thuộc này đều có sẵn trên kho lưu trữ Rocky Linux, bạn có thể dễ dàng cài đặt chúng thông qua lệnh DNF.
Trước tiên, hãy đảm bảo kho lưu trữ EPEL được cài đặt trên hệ thống của bạn. hoặc bạn có thể chỉ cần cài đặt và kích hoạt nó thông qua lệnh dnf bên dưới.
Bây giờ, hãy cài đặt một số gói python 'python3-pip' và 'python3-devel' và trình biên dịch GCC bằng lệnh dnf bên dưới. Các gói này sẽ được sử dụng để cài đặt các gói Python.
Khi được nhắc xác nhận cài đặt, hãy nhập y và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E
Tiếp theo, chạy một lệnh dnf khác bên dưới để cài đặt Nginx web server và các gói supervisord. Nginx ở đây sẽ được sử dụng như một proxy ngược cho dự án Flask của bạn và supervisord sẽ được sử dụng để quản lý quy trình ứng dụng Flask của bạn.
Nhập y và nhấn ENTER để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22367%22%3E%3C/svg%3E
Bây giờ, hãy khởi động và kích hoạt dịch vụ Nginx thông qua lệnh systemctl bên dưới. Sau đó, hãy xác minh dịch vụ Nginx để đảm bảo rằng nó đang chạy.
Bạn sẽ thấy đầu ra như sau - Dịch vụ Nginx đã được bật và sẽ tự động chạy khi hệ thống khởi động. Và trạng thái của dịch vụ Nginx đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Và đối với dịch vụ supervisord, hãy chạy lệnh sau để khởi động và kích hoạt dịch vụ này. Sau đó, hãy xác minh trạng thái của dịch vụ supervisord để đảm bảo dịch vụ đang chạy.
Bạn sẽ thấy dịch vụ supervisord được bật và sẽ tự động chạy khi khởi động. Và trạng thái của dịch vụ giám sát đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22223%22%3E%3C/svg%3E
Chạy lệnh sau để tạo người dùng mới và thiết lập mật khẩu. Trong ví dụ này, bạn sẽ tạo người dùng mới alice.
Khi được nhắc tạo mật khẩu mới, hãy nhập mật khẩu của bạn và lặp lại.
Bây giờ, hãy chạy lệnh sau để thêm người dùng alice vào nhóm 'wheel' để người dùng có thể thực thi lệnh sudo.
Cuối cùng, hãy đăng nhập vào người dùng mới và chạy lệnh 'sudo' để xác minh quyền root. Nhập mật khẩu của bạn khi được nhắc.
Bạn sẽ thấy shell gốc của máy Rocky Linux của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22620%22%20height=%22542%22%3E%3C/svg%3E
Đăng nhập với tư cách là người dùng của bạn bằng lệnh sau.
Tạo thư mục cài đặt Flask mới '/var/www/myflask' bằng lệnh mkdir sau lệnh.
Thay đổi quyền sở hữu và quyền của thư mục cài đặt Flask bằng lệnh bên dưới. Quyền sở hữu phải thuộc về người dùng alice với quyền 755.
Bây giờ, hãy di chuyển thư mục làm việc của bạn đến thư mục cài đặt Flask '/var/www/myflask' và tạo một môi trường ảo Python mới thông qua lệnh python bên dưới.
Bạn sẽ thấy một thư mục mới 'myenv' đã được tạo.
Tiếp theo, kích hoạt môi trường ảo Python bằng lệnh sau. Nếu được kích hoạt, bạn sẽ thấy định dạng nhắc nhở được thay đổi thành '(myenv alice@hostname'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22611%22%20height=%22348%22%3E%3C/svg%3E
Để hủy kích hoạt khỏi môi trường ảo, bạn nên chạy lệnh sau lệnh.
Bây giờ, hãy cài đặt Flask và Gunicorn thông qua lệnh pip bên dưới. Thao tác này sẽ cài đặt Flask và Gunicorn trên môi trường ảo, không phải trên toàn hệ thống.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22465%22%3E%3C/svg%3E
Sau khi Flask và Gunciron được cài đặt, bạn đã sẵn sàng tạo ứng dụng đầu tiên bằng Flask Web Framework.
Tạo tệp Python mới 'myflask.py' bằng trình soạn thảo bạn thích. Trong ví dụ này, chúng ta sẽ sử dụng trình soạn thảo nano.
Bây giờ hãy thêm đoạn mã sau vào tệp.
Lưu tệp và thoát khỏi trình soạn thảo khi bạn hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22250%22%3E%3C/svg%3E
Tiếp theo, tạo một thư mục mới 'templates' cho các tệp tĩnh của bạn và tạo một tệp index.html mới trên đầu thư mục đó.
Thêm tập lệnh HTML sau vào tệp.
Lưu tệp và thoát khỏi trình soạn thảo khi bạn hoàn tất.
Bây giờ hãy chạy tập lệnh Python Flask 'myflask.py' bằng lệnh bên dưới. Lệnh này sẽ chạy ứng dụng Flask của bạn ở chế độ phát triển, chạy địa chỉ IP máy chủ với cổng mặc định 5000.
Dưới đây là kết quả tương tự mà bạn sẽ nhận được.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22228%22%3E%3C/svg%3E
Tiếp theo, mở một thiết bị đầu cuối khác và chạy lệnh curl bên dưới để truy cập ứng dụng Flask của bạn. Bạn sẽ thấy tập lệnh của tệp 'index.html' mà bạn đã tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22599%22%20height=%22181%22%3E%3C/svg%3E
Bây giờ hãy nhấn 'Ctrl+c' để kết thúc ứng dụng Flask của bạn.
Tạo một tệp Python mới 'uwsgi.py' trong cùng thư mục của ứng dụng Flask của bạn. Trong ví dụ này, thư mục phải là '/var/www/myflask'.
Thêm tập lệnh Python sau vào tệp.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Bây giờ, hãy chạy lệnh gunicorn sau để khởi động ứng dụng Flask và xác minh cấu hình của Gunicorn. Ứng dụng hiện đang chạy dưới Gunicron với cổng 8000.
Dưới đây là đầu ra của lệnh gunicorn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22254%22%3E%3C/svg%3E
Tiếp theo, mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng 8000 (ví dụ: http://192.168.5.100:8000/). Bạn sẽ thấy trang index.html của ứng dụng Flask.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22677%22%20height=%22144%22%3E%3C/svg%3E
Lúc này, ứng dụng Flask của bạn đang chạy với Gunicorn mà không có bất kỳ lỗi nào. Bây giờ bạn có thể quay lại terminal và nhấn 'Ctrl+c' để chấm dứt tiến trình gunicorn và bắt đầu cấu hình trình quản lý tiến trình Supervisord.
Tạo cấu hình tệp Supervisord INI mới cho ứng dụng Flask '/etc/supervisord.d/flaskapp.ini' thông qua lệnh nano sau. Cấu hình phải được lưu trữ trong thư mục '/etc/supervisord.d'.
Thêm cấu hình sau vào tệp. Và hãy chắc chắn thay đổi đường dẫn chi tiết của ứng dụng, người dùng và nhóm, và đường dẫn nhật ký.
Với cấu hình này, ứng dụng Flask của bạn sẽ chạy dưới socket UNIX do Gunicorn tạo ra. Socket unix này cũng sẽ được sử dụng để tương tác với proxy ngược Nginx.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Bây giờ, hãy chạy lệnh systemctl sau đây để khởi động lại dịch vụ Supervisord và áp dụng các thay đổi mới. Sau đó, hãy xác minh trạng thái Supervisord và đảm bảo dịch vụ đang chạy.
Trong ảnh chụp màn hình bên dưới, bạn có thể thấy Supervisord đang chạy với cấu hình bổ sung mới cho ứng dụng Flask.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22298%22%3E%3C/svg%3E
Cuối cùng, bây giờ bạn có thể xác minh quy trình của Ứng dụng Flask thông qua lệnh supervisorctl bên dưới. Bạn sẽ thấy có một tiến trình có tên là myflask với trạng thái OK.
Tạo cấu hình khối máy chủ Nginx mới '/etc/nginx/conf.d/flaskapp.conf' bằng trình chỉnh sửa nano sau.
Thêm cấu hình sau vào tệp. Và hãy nhớ thay đổi tên miền www.myflask.local bằng tên miền phát triển cục bộ của bạn.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, hãy xác minh cấu hình Nginx để đảm bảo bạn có cấu hình chính xác. Sau đó, khởi động lại dịch vụ Nginx để áp dụng các thay đổi mới.
Lúc này, ứng dụng Flask của bạn hiện có thể truy cập thông qua proxy ngược Nginx chạy trên cổng HTTP mặc định.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22685%22%20height=%22206%22%3E%3C/svg%3E
Bây giờ trên máy cục bộ của bạn, hãy chỉnh sửa Tệp /etc/hosts sử dụng trình chỉnh sửa nano.
Xác định địa chỉ IP của máy Ubuntu với tên miền "www.myflask.local" như bên dưới.
Lưu và đóng tệp.
Bây giờ hãy mở trình duyệt web của bạn và nhập tên miền của dự án Flask (tức là http://www.myflask.local) trên thanh địa chỉ. Và bạn sẽ nhận được trang chỉ mục của dự án Python Flask của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22669%22%20height=%22141%22%3E%3C/svg%3E
Gunicorn hay "Green Unicorn" là Máy chủ HTTP WSGI với chế độ công nhân trước khi phân nhánh. Nó được chuyển từ dự án Unicorn của Ruby. Gunicorn có thể được ghép nối với một số khuôn khổ web, nó nhẹ trên tài nguyên máy chủ và nhanh. Gunicorn đứng giữa ứng dụng của bạn và máy chủ web, vì vậy bạn có thể ghép nối Gunicorn với máy chủ web như Nginx và Apache2.
Trong hướng dẫn này, chúng tôi sẽ chỉ cách cài đặt và cấu hình Flask Python Web Framework với Gunicorn và Nginx trên máy chủ Rocky Linux. Bạn cũng sẽ học cách thiết lập Supervisord làm trình quản lý quy trình để quản lý ứng dụng Python Flask.
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, bạn sẽ cần đáp ứng một số yêu cầu sau:- Máy chủ Rocky Linux - Bạn có thể sử dụng cả Rocky Linux v8 hoặc v9 - Máy tính để bàn hoặc Máy chủ.
- Người dùng không phải root có quyền quản trị viên root sudo.
- Tên miền giả để phát triển cục bộ.
Cài đặt các phụ thuộc
Trong bước đầu tiên, bạn sẽ cài đặt một số phụ thuộc gói sẽ được sử dụng để cài đặt và triển khai Flask Web Framework. Bao gồm Python Pip, Nginx và Supervisord.Tất cả các gói phụ thuộc này đều có sẵn trên kho lưu trữ Rocky Linux, bạn có thể dễ dàng cài đặt chúng thông qua lệnh DNF.
Trước tiên, hãy đảm bảo kho lưu trữ EPEL được cài đặt trên hệ thống của bạn. hoặc bạn có thể chỉ cần cài đặt và kích hoạt nó thông qua lệnh dnf bên dưới.
Mã:
sudo dnf install epel-release
Mã:
sudo dnf install python3-pip python3-devel gcc
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E
Tiếp theo, chạy một lệnh dnf khác bên dưới để cài đặt Nginx web server và các gói supervisord. Nginx ở đây sẽ được sử dụng như một proxy ngược cho dự án Flask của bạn và supervisord sẽ được sử dụng để quản lý quy trình ứng dụng Flask của bạn.
Mã:
sudo dnf install nginx supervisor
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22367%22%3E%3C/svg%3E
Bây giờ, hãy khởi động và kích hoạt dịch vụ Nginx thông qua lệnh systemctl bên dưới. Sau đó, hãy xác minh dịch vụ Nginx để đảm bảo rằng nó đang chạy.
Mã:
sudo systemctl start nginx
sudo systemctl enable nginx
Mã:
sudo systemctl status nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Và đối với dịch vụ supervisord, hãy chạy lệnh sau để khởi động và kích hoạt dịch vụ này. Sau đó, hãy xác minh trạng thái của dịch vụ supervisord để đảm bảo dịch vụ đang chạy.
Mã:
sudo systemctl start supervisord
sudo systemctl enable supervisord
Mã:
sudo systemctl status supervisord
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22223%22%3E%3C/svg%3E
Thiết lập người dùng
Sau khi cài đặt các gói phụ thuộc, bây giờ bạn sẽ thiết lập một người dùng mới sẽ được sử dụng để chạy dự án Flask.Chạy lệnh sau để tạo người dùng mới và thiết lập mật khẩu. Trong ví dụ này, bạn sẽ tạo người dùng mới alice.
Khi được nhắc tạo mật khẩu mới, hãy nhập mật khẩu của bạn và lặp lại.
Mã:
sudo useradd -m -s /bin/bash alice
sudo passwd alice
Mã:
sudo usermod -aG wheel alice
Mã:
su - alice
sudo su
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22620%22%20height=%22542%22%3E%3C/svg%3E
Thiết lập Python Virtual Môi trường
Trong bước này, bạn sẽ thiết lập môi trường Python Virtual cho khung web Flask.Đăng nhập với tư cách là người dùng của bạn bằng lệnh sau.
Mã:
su - alice
Mã:
sudo mkdir -p /var/www/myflask
Mã:
sudo chown -R alice:alice /var/www/myflask
sudo chmod 755 /var/www/myflask
Mã:
cd /var/www/myflask
python3 -m venv myenv
Tiếp theo, kích hoạt môi trường ảo Python bằng lệnh sau. Nếu được kích hoạt, bạn sẽ thấy định dạng nhắc nhở được thay đổi thành '(myenv alice@hostname'.
Mã:
source myenv/bin/activate
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22611%22%20height=%22348%22%3E%3C/svg%3E
Để hủy kích hoạt khỏi môi trường ảo, bạn nên chạy lệnh sau lệnh.
Mã:
deactivate
Cài đặt Flask và Gunicorn
Trước khi cài đặt Flask, hãy đảm bảo bạn đang ở trong môi trường ảo. hoặc bạn có thể chỉ cần chạy lệnh sau để ghi nhật ký trong.
Mã:
su - alice
Mã:
cd /var/www/myflask
source myenv/bin/activate
Mã:
pip3 install flask gunicorn
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22465%22%3E%3C/svg%3E
Sau khi Flask và Gunciron được cài đặt, bạn đã sẵn sàng tạo ứng dụng đầu tiên bằng Flask Web Framework.
Tạo ứng dụng Flask đầu tiên
Trước khi bắt đầu tạo ứng dụng Flask, hãy đảm bảo rằng bạn đang ở trong môi trường ảo Python của mình.Tạo tệp Python mới 'myflask.py' bằng trình soạn thảo bạn thích. Trong ví dụ này, chúng ta sẽ sử dụng trình soạn thảo nano.
Mã:
nano myflask.py
Mã:
# myflask.py
from flask import Flask, render_template # importing the render_template function
app = Flask(__name__)
# route to index page
@app.route("/")
def hello():
return render_template('index.html')
if __name__ == "__main__":
app.run(host='0.0.0.0')
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22250%22%3E%3C/svg%3E
Tiếp theo, tạo một thư mục mới 'templates' cho các tệp tĩnh của bạn và tạo một tệp index.html mới trên đầu thư mục đó.
Mã:
mkdir -p templates
nano templates/index.html
Mã:
[HEADING=1]Hello Flask - Rocky Linux![/HEADING]
Bây giờ hãy chạy tập lệnh Python Flask 'myflask.py' bằng lệnh bên dưới. Lệnh này sẽ chạy ứng dụng Flask của bạn ở chế độ phát triển, chạy địa chỉ IP máy chủ với cổng mặc định 5000.
Mã:
python3 myflask.py
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22228%22%3E%3C/svg%3E
Tiếp theo, mở một thiết bị đầu cuối khác và chạy lệnh curl bên dưới để truy cập ứng dụng Flask của bạn. Bạn sẽ thấy tập lệnh của tệp 'index.html' mà bạn đã tạo.
Mã:
curl localhost:5000
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22599%22%20height=%22181%22%3E%3C/svg%3E
Bây giờ hãy nhấn 'Ctrl+c' để kết thúc ứng dụng Flask của bạn.
Thiết lập Gunicorn và Supervisord
Trong bước này, bạn sẽ thiết lập ứng dụng Flask của mình với Gunicorn và Supervisord. Điều này cho phép bạn chạy và quản lý ứng dụng Python của mình một cách có thể quản lý và kiểm soát được thông qua quy trình Supervisord.Tạo một tệp Python mới 'uwsgi.py' trong cùng thư mục của ứng dụng Flask của bạn. Trong ví dụ này, thư mục phải là '/var/www/myflask'.
Mã:
nano wsgi.py
Mã:
# import myflask Flask application
from myflask import app
if __name__ == "__main__":
app.run(debug=True)
Bây giờ, hãy chạy lệnh gunicorn sau để khởi động ứng dụng Flask và xác minh cấu hình của Gunicorn. Ứng dụng hiện đang chạy dưới Gunicron với cổng 8000.
Mã:
gunicorn -w 4 --bind 0.0.0.0:8000 wsgi:app
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22254%22%3E%3C/svg%3E
Tiếp theo, mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng 8000 (ví dụ: http://192.168.5.100:8000/). Bạn sẽ thấy trang index.html của ứng dụng Flask.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22677%22%20height=%22144%22%3E%3C/svg%3E
Lúc này, ứng dụng Flask của bạn đang chạy với Gunicorn mà không có bất kỳ lỗi nào. Bây giờ bạn có thể quay lại terminal và nhấn 'Ctrl+c' để chấm dứt tiến trình gunicorn và bắt đầu cấu hình trình quản lý tiến trình Supervisord.
Tạo cấu hình tệp Supervisord INI mới cho ứng dụng Flask '/etc/supervisord.d/flaskapp.ini' thông qua lệnh nano sau. Cấu hình phải được lưu trữ trong thư mục '/etc/supervisord.d'.
Mã:
sudo nano /etc/supervisord.d/flaskapp.ini
Với cấu hình này, ứng dụng Flask của bạn sẽ chạy dưới socket UNIX do Gunicorn tạo ra. Socket unix này cũng sẽ được sử dụng để tương tác với proxy ngược Nginx.
Mã:
[program:myflask]
command=/bin/bash -c 'source /var/www/myflask/myenv/bin/activate; gunicorn -w 3 --bind unix:/var/www/myflask/ipc.sock wsgi:app'
directory=/var/www/myflask
user=alice
group=www-data
autostart=true
autorestart=true
stdout_logfile=/var/www/myflask/myflask.log
stderr_logfile=/var/www/myflask/error.log
Bây giờ, hãy chạy lệnh systemctl sau đây để khởi động lại dịch vụ Supervisord và áp dụng các thay đổi mới. Sau đó, hãy xác minh trạng thái Supervisord và đảm bảo dịch vụ đang chạy.
Mã:
sudo systemctl restart supervisord
sudo systemctl status supervisord
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22298%22%3E%3C/svg%3E
Cuối cùng, bây giờ bạn có thể xác minh quy trình của Ứng dụng Flask thông qua lệnh supervisorctl bên dưới. Bạn sẽ thấy có một tiến trình có tên là myflask với trạng thái OK.
Mã:
sudo supervisorctl status
Thiết lập Nginx Reverse Proxy
Trong bước này, bạn sẽ tìm hiểu cách thiết lập Nginx làm proxy ngược cho ứng dụng Flask đang chạy dưới trình quản lý tiến trình Supervisord. Bạn sẽ tạo một Khối máy chủ Nginx mới cho proxy ngược và sử dụng tên miền cục bộ cho ứng dụng Flask.Tạo cấu hình khối máy chủ Nginx mới '/etc/nginx/conf.d/flaskapp.conf' bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/nginx/conf.d/flaskapp.conf
Mã:
server {
listen 80;
server_name www.myflask.local;
location / {
include uwsgi_params;
proxy_pass http://unix:/var/www/myflask/ipc.sock;
}
}
Tiếp theo, hãy xác minh cấu hình Nginx để đảm bảo bạn có cấu hình chính xác. Sau đó, khởi động lại dịch vụ Nginx để áp dụng các thay đổi mới.
Mã:
sudo nginx -t
sudo systemctl restart nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22685%22%20height=%22206%22%3E%3C/svg%3E
Bây giờ trên máy cục bộ của bạn, hãy chỉnh sửa Tệp /etc/hosts sử dụng trình chỉnh sửa nano.
Mã:
sudo nano /etc/hosts
Mã:
192.168.5.28 www.myflask.local
Bây giờ hãy mở trình duyệt web của bạn và nhập tên miền của dự án Flask (tức là http://www.myflask.local) trên thanh địa chỉ. Và bạn sẽ nhận được trang chỉ mục của dự án Python Flask của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22669%22%20height=%22141%22%3E%3C/svg%3E