Cấu hình Reverse Proxy trên Nginx

Cấu hình Reverse Proxy trên Nginx

1. Reverse Proxy là gì?



Đối lập với forward proxy, đây là một loại proxy phía server. Server đóng vai trò làm reverse proxy sẽ chắn trước các request từ client đẩy đến và che dấu toàn bộ backend server đằng sau.




2. Mục đích sử dụng



  • Load Balancing: Như theo sơ đồ trên, Reverse Proxy sẽ nhận request, phân bố cho Server tương ứng, nhận kết quả và trả về cho client.
  • Web Acceleration: Reverse Proxy có thể được dùng cho việc nén dữ liệu inbound và outbound, cũng như cache lại các request nhằm giảm dung lượng dữ liệu và tăng tốc độ cho cả phía client lẫn server.
  • Bảo mật và ẩn danh: Reverse Proxy có thể được dùng như một tường lửa đơn giản để block hoặc filter các bad-request


3. Cài đặt Nginx



Bởi vì mình dùng server: CentOs 7x64, nên mình sẽ hướng dẫn cài theo server của mình nhé.

Bước 1: Chạy dòng lệnh sau đây:

/etc/yum.repos.d/nginx.repo

Bước 2: Copy đoạn text vào file nginx.repo vừa tạo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

Bước 3: Save file vừa tạo lại bằng cách thực hiện

Nhấn Esc tiếp đó nhập :x cuối cùng ấn Enter

Bước 4: Chạy dòng lệnh sau:

sudo yum install nginx

Trong quá trình chạy chương trình có xác nhận y/n thì cứ chọn y. Các bạn ngồi đợi cho đến khi báo Complete! là xong



4. Một số câu lệnh cơ bản để thao tác với Nginx



a. Khởi động Nginx

sudo systemctl start nginx

b. Dừng hoạt động Nginx

sudo systemctl start nginx

c. Khởi động lại Nginx

sudo systemctl restart nginx

d. Kiểm tra trạng thái của Nginx

sudo systemctl status nginx



5. Cấu hình Reverse Proxy trên Nginx



Bước 1: Vào thư mục conf.d của Nginx bằng cách chạy câu lệnh sau:

cd /etc/nginx/conf.d

Bước 2: Tạo 1 file config mới:

vi domain.conf

Bước 3: Copy đoạn cấu hình sau vào trong file domain.conf

server {
        listen 80;
        server_name your_domain_name; #change to your domain name
 
        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_pass http://checkip.dyndns.com/;  #change to your internal server IP
                proxy_redirect off;
        }
}

Bước 4: Lưu lại cấu hình bằng cách ấn

Esc -> :x -> Enter

Bước 5: Reload lại nginx

systemctl reload nginx

Như vậy là bạn đã hoàn thành việc cài đặt server bạn thành Reverse Proxy trên Nginx

Ở ví dụ của mình thì mỗi khi vào http://your_domain_name/ -> thì luôn nhận được reponse là response của trang http://checkip.dyndns.com/ (chỗ này bạn sẽ thay bằng base url của server resource của bạn)



Cám ơn các bạn đã theo dõi bài viết của mình!!!