Apache và Nginx là các máy chủ web miễn phí, mã nguồn mở và phổ biến nhất trên toàn thế giới. Chúng thường được sử dụng để lưu trữ các ứng dụng dựa trên PHP. Nginx được biết đến với cấu trúc nhẹ và tốc độ, trong khi Apache được biết đến với hiệu suất. Cả hai đều được thiết kế để xử lý các khối lượng công việc khác nhau. Nginx được trang bị tốt để xử lý nội dung tĩnh, trong khi Apache có thể xử lý nội dung động. Chúng ta có thể sử dụng cả hai máy chủ web trên một hệ thống duy nhất để hưởng lợi từ cả hai.
Bài viết này sẽ chỉ cho bạn cách cài đặt Nginx làm proxy ngược cho Apache trên Ubuntu 22.04.
Sau khi cài đặt xong gói Apache, hãy khởi động dịch vụ Apache và cho phép dịch vụ này khởi động khi khởi động lại hệ thống:
Tìm dòng sau:
Và thay thế bằng dòng sau dòng:
Lưu và đóng tệp khi bạn hoàn tất. Tiếp theo, bạn cũng cần chỉnh sửa tệp cấu hình máy chủ ảo mặc định của Apache và thay đổi cổng mặc định.
Bạn có thể chỉnh sửa tệp này bằng lệnh sau:
Tìm dòng sau:
Và thay thế bằng lệnh sau dòng:
Lưu và đóng tệp sau đó khởi động lại dịch vụ Apache để áp dụng các thay đổi.
Bây giờ bạn có thể kiểm tra trạng thái của Apache bằng cách sử dụng lệnh sau lệnh:
Bạn sẽ nhận được kết quả sau:
Lúc này, Apache đã được khởi động và lắng nghe trên cổng 8080. Bạn có thể kiểm tra bằng lệnh sau lệnh:
Bạn sẽ nhận được kết quả sau:
Sau khi cài đặt gói Nginx, hãy khởi động dịch vụ Nginx và cho phép dịch vụ này khởi động khi khởi động lại hệ thống:
Để thực hiện, hãy tạo tệp cấu hình máy chủ ảo Nginx:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, hãy kiểm tra Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Bạn cũng có thể kiểm tra trạng thái Nginx bằng lệnh sau lệnh:
Bạn sẽ nhận được kết quả đầu ra sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22413%22%3E%3C/svg%3E
Bài viết này sẽ chỉ cho bạn cách cài đặt Nginx làm proxy ngược cho Apache trên Ubuntu 22.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 22.04.
- Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
- Một mật khẩu gốc được cấu hình trên máy chủ.
Cài đặt Apache Webserver
Gói Apache webserver được bao gồm trong kho lưu trữ mặc định của Ubuntu 22.04 theo mặc định. Bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
apt-get install apache2 -y
Mã:
systemctl start apache2
systemctl enable apache2
Thay đổi cổng mặc định của Apache
Theo mặc định, máy chủ web Apache lắng nghe trên cổng 80. Trong bài đăng này, chúng tôi sẽ sử dụng Nginx là proxy ngược cho Apache. Vì vậy, bạn sẽ cần phải thay đổi cổng mặc định của Apache thành 8080. Bạn có thể thay đổi bằng cách chỉnh sửa tệp sau:
Mã:
nano /etc/apache2/ports.conf
Mã:
Listen 80
Mã:
Listen 127.0.0.1:8080
Bạn có thể chỉnh sửa tệp này bằng lệnh sau:
Mã:
nano /etc/apache2/sites-available/000-default.conf
Mã:
Mã:
Mã:
systemctl restart apache2
Mã:
systemctl status apache2
Mã:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-05-05 12:02:11 UTC; 7s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 25295 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 25299 (apache2) Tasks: 6 (limit: 4630) Memory: 20.5M CPU: 126ms CGroup: /system.slice/apache2.service ??25299 /usr/sbin/apache2 -k start ??25300 /usr/sbin/apache2 -k start ??25301 /usr/sbin/apache2 -k start ??25302 /usr/sbin/apache2 -k start ??25303 /usr/sbin/apache2 -k start ??25304 /usr/sbin/apache2 -k start
May 05 12:02:11 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...
Mã:
ss -antpl | grep apache2
Mã:
LISTEN 0 511 127.0.0.1:8080 0.0.0.0:* users:(("apache2",pid=25304,fd=3),("apache2",pid=25303,fd=3),("apache2",pid=25302,fd=3),("apache2",pid=25301,fd=3),("apache2",pid=25300,fd=3),("apache2",pid=25299,fd=3))
Cài đặt Nginx Webserver
Bạn có thể cài đặt gói Nginx bằng cách chạy lệnh sau lệnh:
Mã:
apt-get install nginx -y
Mã:
systemctl start nginx
systemctl enable nginx
Cấu hình Nginx làm Proxy ngược cho Apache
Bây giờ, bạn sẽ cần cấu hình Nginx làm proxy ngược để chuyển tiếp tất cả các yêu cầu đến từ cổng 80 đến cổng máy chủ web Apache 8080.Để thực hiện, hãy tạo tệp cấu hình máy chủ ảo Nginx:
Mã:
nano /etc/nginx/conf.d/proxy.conf
Mã:
server { listen 80; root /var/www/html/; index index.html index.htm; server_name proxy.example.com; location \ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080;
}
}
Mã:
nginx -t
Mã:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2022-05-05 12:03:09 UTC; 5s ago Docs: man:nginx(8) Process: 25313 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 25314 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 25315 (nginx) Tasks: 3 (limit: 4630) Memory: 3.3M CPU: 49ms CGroup: /system.slice/nginx.service ??25315 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??25316 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ??25317 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
May 05 12:03:09 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
May 05 12:03:09 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
VerifyReverse Proxy
Tại thời điểm này, Nginx đã được cài đặt và cấu hình làm proxy ngược cho máy chủ web Apache. Bây giờ bạn có thể kiểm tra bằng URL . Nếu mọi thứ đều ổn, bạn sẽ nhận được trang kiểm tra Apache trên màn hình sau:data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22413%22%3E%3C/svg%3E