Nginx là một máy chủ web phổ biến được sử dụng để cung cấp các ứng dụng web hiệu suất cao. Ngoài việc chạy các tệp tĩnh, Nginx cũng có thể được cấu hình để chạy các ứng dụng web động như Node.js và Python thông qua việc sử dụng các mô-đun phù hợp. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình Nginx để chạy ứng dụng web Node.js và Python.
Cấu hình Nginx để chạy ứng dụng web Node.js
1. Cài đặt Node.js
Đầu tiên, bạn cần cài đặt Node.js trên máy chủ của bạn. Điều này có thể được thực hiện bằng cách tải xuống bản cài đặt phù hợp từ trang web chính thức của Node.js và làm theo hướng dẫn cài đặt.
2. Cài đặt và cấu hình PM2 (Process Manager 2)
PM2 là một công cụ quản lý quá trình cho ứng dụng Node.js. Nó sẽ giúp bạn quản lý quá trình chạy ứng dụng Node.js và tự động khởi động lại nếu cần. Cài đặt PM2 bằng cách chạy lệnh sau trong dòng lệnh:
npm install pm2 -g
Sau đó, hãy chạy ứng dụng Node.js của bạn bằng PM2. Ví dụ:
pm2 start app.js
Ứng dụng của bạn sẽ chạy trên một cổng (port) nhất định.
3. Cấu hình Nginx để chạy ứng dụng Node.js
Để chạy ứng dụng Node.js thông qua Nginx, bạn cần chỉnh sửa tệp cấu hình Nginx. Thông thường, tệp này có đường dẫn /etc/nginx/nginx.conf hoặc /etc/nginx/conf.d/default.conf.
Chỉnh sửa tệp cấu hình Nginx và thêm đoạn mã sau vào phần server:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000; // Thay đổi cổng 3000 nếu ứng dụng của bạn chạy trên cổng khác
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Trong đoạn mã trên, thay thế example.com bằng tên miền của bạn và thay đổi cổng proxy_pass nếu ứng dụng của bạn chạy trên cổng khác.
4. Khởi động lại Nginx
Sau khi cấu hình xong, hãy khởi động lại Nginx để áp dụng thay đổi.
sudo service nginx restart
Bây giờ ứng dụng Node.js của bạn sẽ chạy thông qua Nginx và bạn có thể truy cập nó thông qua tên miền hoặc địa chỉ IP của máy chủ.
Cấu hình Nginx để chạy ứng dụng web Python
1. Cài đặt và cấu hình uWSGI
uWSGI là một máy chủ ứng dụng web và cổng giao tiếp cho Python. Cài đặt uWSGI bằng pip:
pip install uwsgi
Tạo một tệp tin uwsgi.ini với nội dung sau:
[uwsgi]
module = your_app:app
master = true
processes = 5
socket = your_app.sock
chmod-socket = 660
vacuum = true
die-on-term = true
Trong đó, thay thế your_app:app bằng tên module và đối tượng ứng dụng Python của bạn.
2. Cấu hình Nginx để chạy ứng dụng Python
Chỉnh sửa tệp cấu hình Nginx và thêm đoạn mã sau vào phần server:
server {
listen 80;
server_name example.com;
location / {
include uwsgi_params;
uwsgi_pass unix:/path/to/your_app.sock; // Thay đổi đường dẫn socket nếu khác
}
}
Thay thế example.com bằng tên miền của bạn và thay đổi đường dẫn socket nếu cần thiết.
3. Khởi động lại Nginx
Sau khi cấu hình xong, khởi động lại Nginx để áp dụng thay đổi.
sudo service nginx restart
Bây giờ ứng dụng Python của bạn sẽ chạy thông qua Nginx và bạn có thể truy cập nó thông qua tên miền hoặc địa chỉ IP của máy chủ.
Trên đây là cách cấu hình Nginx để chạy ứng dụng web Node.js hoặc Python. Bằng cách cấu hình Nginx như trên, bạn có thể triển khai ứng dụng web động một cách hiệu quả và đảm bảo hiệu suất cao.