Giới thiệu

Nginx và Apache là các máy chủ web nguồn mở phổ biến nhất được sử dụng ngay cả bởi các trang web tạo lưu lượng truy cập lớn. Trong hướng dẫn này, chúng tôi minh họa cách sử dụng cả hai máy chủ web nhưng với các chức năng khác nhau. Máy chủ web Apache chạy trang web WordPress phía sau máy chủ nginx (có chứng chỉ SSL đã cài đặt) hoạt động như một proxy ngược cho máy chủ apache. Trong trường hợp này, Nginx đang được áp dụng như Reverse Proxy xử lý tất cả các Kết nối SSL thay mặt cho Apache, trong khi Apache vẫn là máy chủ web. Đây là một trong nhiều cách sử dụng Nginx làm proxy ngược.


Do đó, tất cả các kết nối URL từ người dùng các trình duyệt của LinkedIn đều chạm vào máy chủ proxy ngược Nginx trước tiên và buộc phải ở trong giao thức HTTPS bằng cách sử dụng chứng chỉ SSL được cài đặt của máy chủ. Sau đó Nginx chuyển tiếp tất cả các yêu cầu đến máy chủ web Apache đang chạy trang web WordPress. Do đó, nó rất cần thiết để cấu hình cả hai máy chủ để nghe trên các cổng khác nhau để tránh xung đột.

>Trong hướng dẫn này, chúng tôi minh họa cách cài đặt chứng chỉ SSL trong proxy ngược Nginx cho trang web WordPress được lưu trữ trên máy chủ web Apache.

Điều kiện tiên quyết

Nó giả định WordPress và Apache đã được cài đặt, định cấu hình và hoạt động tốt trên Máy chủ Linux CentOS 7.

Tải về & Cấu hình Nginx

Chạy các lệnh để cài đặt máy chủ nginx

$ sudo yum cài đặt phát hành epel
$ sudo yum cài đặt nginx

Chỉnh sửa tập tin cấu hình apache

$ sudo vim /etc/httpd/conf/httpd.conf

Thay đổi cổng nghe thành một cổng khác (ví dụ: 8080) bằng cách chỉnh sửa dòng như sau.

Nghe 8080

Điều này là để ngăn nginx nghe cùng một cổng với Apache, do đó giờ đây nginx lắng nghe cổng 80 trong khi apache nghe cổng 8080.

Mở cổng 8080 trong tường lửa:

$ sudo tường lửa-cmd –permanent –add-port = 8080 / tcp
$ sudo tường lửa-cmd – tải lại

Khởi động lại dịch vụ apache

$ sudo systemctl khởi động lại httpd

Khởi đầu & cho phép nginx

$ sudo systemctl bắt đầu nginx
$ sudo systemctl cho phép nginx

Xác nhận rằng nginx đang hoạt động tốt bằng cách sử dụng curl để hiển thị tên và phiên bản của nó trong các tiêu đề HTTP

$ curl -I http: // localhost

Định cấu hình Nginx cho SSL

Bỏ ghi chú toàn bộ phần bên dưới phần máy chủ https (ssl) i.e.

# Cài đặt cho Máy chủ hỗ trợ TLS

Tạo chứng chỉ SSL

Trước hết, tạo nginx và các thư mục riêng như sau

$ sudo mkdir -p / etc / pki / nginx / private

Sau đó tạo khóa:

$ sudo openssl req -x509 -nodes -sha256 -ngày 365 -newkey rsa: 2048 -keyout /etc/pki/nginx/private/server.key -out /etc/pki/nginx/server.crt

Lưu ý đặc biệt: Đảm bảo cổng 443 được cho phép qua tường lửa như sau:

$ sudo tường lửa-cmd –permanent –add-port = 443 / tcp
$ sudo tường lửa-cmd – tải lại

Chỉnh sửa Dile nginx.conf Dile để cho phép Pass Proxy ngược lại với Apache

Trong phần máy chủ (http) – phần đầu tiên: Thay thế phần vị trí bằng phần sau.

vị trí / {
thử_files $ uri @apache;
}

vị trí @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
lược đồ proxy_set_header X-Forwarded-Proto $;
proxy_set_header Máy chủ lưu trữ $;
proxy_pass http://127.0.0.1:8080;
}

vị trí ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
lược đồ proxy_set_header X-Forwarded-Proto $;
proxy_set_header Máy chủ lưu trữ $;
proxy_pass http://127.0.0.1:8080;
}

vị trí ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
lược đồ proxy_set_header X-Forwarded-Proto $;
proxy_set_header Máy chủ lưu trữ $;
proxy_pass http://127.0.0.1:8080;
}

vị trí ~ / \. {
Phủ nhận tất cả;
access_log tắt;
log_not_found tắt;
}

Trong phần máy chủ (https) – phần thứ hai: Thay thế phần vị trí bằng phần sau.

vị trí / {
thử_files $ uri @apache;
}

vị trí @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
lược đồ proxy_set_header X-Forwarded-Proto $;
proxy_set_header Máy chủ lưu trữ $;
proxy_pass http://127.0.0.1:8080;
}

vị trí ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
lược đồ proxy_set_header X-Forwarded-Proto $;
proxy_set_header Máy chủ lưu trữ $;
proxy_pass http://127.0.0.1:8080;
}

vị trí ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
lược đồ proxy_set_header X-Forwarded-Proto $;
proxy_set_header Máy chủ lưu trữ $;
proxy_pass http://127.0.0.1:8080;
}

vị trí ~ / \. {
Phủ nhận tất cả;
access_log tắt;
log_not_found tắt;
}

Truy cập Trang web Wiki của Mozilla về các bộ mật mã được đề xuất> và dán các mật mã vào phần mật mã trong phần máy chủ thứ hai (https).

Eslhe-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA38-E-A-A RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA

Sau đó lưu tệp:

Cấu hình WordPress

Chỉnh sửa tệp wp-config để cho phép chuyển hướng sang https bằng cách thêm mã bên dưới:

xác định (‘FORCE_SSL_ADMIN’, đúng);
if (strpose ($ _ SERVER [‘HTTP_X_FORWARDED_PROTO’], ‘https’)! == false)
$ _SERVER [‘HTTPS’] = ‘trên’;
$ sudo vim /var/www/html/wp-config.php

Lưu các tập tin

Cấp quyền cho các kết nối httpd và nginx thông qua SELinux

$ sudo setsebool -P httpd_can_network_connect 1

Truy cập trang tổng quan wp-admin của trang web

Cài đặt > Chung, rồi đổi "http" đến "https" cho cả "Địa chỉ WordPress (URL)" và "Địa chỉ trang web (URL)"

Và lưu các thay đổi

Buộc chuyển hướng tất cả lưu lượng truy cập sang https

Chỉnh sửa nginx.conf bằng cách thêm dòng bên dưới phần máy chủ http

trả về 301 https: // $ server_name $ request_uri;

Khởi động lại cả dịch vụ nginx và apache

$ sudo systemctl khởi động lại nginx httpd

Bây giờ chúng tôi có một trang web WordPress với chứng chỉ SSL tự ký như dưới đây:

https://35.225.251.235

Phần kết luận

Bây giờ bạn có một trang web WordPress đầy đủ chức năng với chứng chỉ SSL. Máy chủ nginx, mặc dù hoạt động như một proxy ngược hoạt động minh bạch và liền mạch với máy chủ web Apache. Điều này làm cho có vẻ như các yêu cầu đang được phục vụ trực tiếp đến máy chủ web Apache. Thật vậy, đây là một trong những cách hiệu quả nhất để bảo mật trang web của bạn và giảm lỗ hổng chống lại tin tặc.

Nếu bạn gặp rắc rối, hãy yêu cầu dịch vụ hỗ trợ của máy chủ web của bạn để được hỗ trợ – họ sẽ có thể giúp đỡ. Nếu không thể, HostaAdvice có thể đề xuất các nhà cung cấp dịch vụ lưu trữ VPS tốt nhất, nhà cung cấp dịch vụ lưu trữ WordPress tốt nhất và dịch vụ lưu trữ Linux tốt nhất (tùy thuộc vào những gì bạn đang tìm kiếm). Các lựa chọn hàng đầu trong mỗi danh mục được biết đến với việc cung cấp dịch vụ và hỗ trợ khách hàng xuất sắc.

Kiểm tra 3 dịch vụ lưu trữ WordPress hàng đầu sau:

FastComet

Giá khởi điểm:
$ 2,95


độ tin cậy
9,7


Giá cả
9,5


Thân thiện với người dùng
9,7


Ủng hộ
9,7


Đặc trưng
9,6

Đọc đánh giá

Ghé thăm FastComet

Chủ nhà

Giá khởi điểm:
0,99 đô la


độ tin cậy
9,3


Giá cả
9,3


Thân thiện với người dùng
9,4


Ủng hộ
9,4


Đặc trưng
9,2

Đọc đánh giá

Ghé thăm Hostinger

Lưu trữ A2

Giá khởi điểm:
$ 3,92


độ tin cậy
9,3


Giá cả
9.0


Thân thiện với người dùng
9,3


Ủng hộ
9,3


Đặc trưng
9,3

Đọc đánh giá

Ghé thăm Hosting A2

Bài viết hướng dẫn liên quan

  • Cách định cấu hình Nginx làm Proxy ngược cho Apache trên VPS Ubuntu 16.04 hoặc Máy chủ chuyên dụng
    chuyên gia
  • Cách thiết lập Hãy mã hóa với Nginx trên VPS Ubuntu 18.04 hoặc Máy chủ chuyên dụng
    Trung gian
  • Cách thêm SSL miễn phí trong WordPress bằng cách sử dụng Let Encrypt
    Trung gian
  • Cách cài đặt WordPress với Nginx & Redis
    người mới
  • Cách cài đặt WordPress với Nginx & Redis trên VPS CentOS hoặc Máy chủ chuyên dụng
    Trung gian
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me