GIT – Bài viết này sẽ hướng dẫn các bạn cấu hình  làm reverse proxy trên máy chủ webserver sử dụng Apache. Mô hình như sau

Client <—> Nginx<—->Apache

Nginx và Apache chạy trên cùng một server ở hai port dịch vụ khác nhau. Cụ thể Nginx sẽ chịu trách nhiệm lắng nghe các request từ client và gởi cho Apache==>cấu hình Nginx chạy port 80. Apache chỉ nhận request cục bộ từ Nginx và trả lời lại, nên port là tùy chọn (đừng xung đột với các dịch vụ đang chạy khác..). Ở đây mình chọn port 8080 (socket 127.0.0.1:8080)

vi /etc/httpd/conf/httpd.conf

Tìm dòng khai báo Listen và sửa lại thành

Listen 127.0.0.1:8080

Tạo một Vhost, ví dụ ở đây là gocit.vn

<VirtualHost 127.0.0.1:8080>
DocumentRoot "/home/www-data/gocit.vn"
ServerName gocit.vn
DirectoryIndex index. index.html
</VirtualHost>

(nhớ tạo thư mục /home/www-data/gocit.vn và cấp quyền cho apache , tạo thêm các file html hoặc php để test nhé)

Ở đây mình đều cho địa chỉ lắng nghe là 127.0.0.1 để cho Apache chỉ nhận request cục bộ từ Nginx, tránh các request của client trực tiếp vào Apache ở port 8080.

Tiến hành cấu hình Nginx.
Khai báo vhost gocit.vn với các thông số sau

vi /etc/nginx/nginx.conf

server {
 listen 80;
server_name gocit.vn www.gocit.vn;
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer"   '"$http_user_agent" "$http_x_forwarded_for"';
access_log  /var/log/nginx/gocit-access.log  main;
location / {
 include proxy.conf;
 proxy_pass http://127.0.0.1:8080;
 proxy_cache my-cache;
 proxy_cache_valid  200 302  60m;
 proxy_cache_valid  404      1m;
}

Tạo file proxy.conf với các thông số sau (đặt file này ngang hàng với nginx.conf):

vi /etc/nginx/proxy.conf

Nội dung file

proxy_redirect          off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffers           32 4k;

Tiếp theo chúng ta khai báo đường dẫn lưu cache và các tùy chọn khác

vi /etc/nginx/nginx.conf

Thêm vào sau http { các thông sô cache sau:

proxy_cache_path  /tmp/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /tmp/cache/tmp;

Tạo thư mục chứa các file cache

mkdir /tmp/cache
mkdir/tmp/cache/tmp
chown nginx –R /tmp/cache
chmod 700 -R /tmp/cache

(Ở đây, Nginx của mình chạy với user nginx, nên mình cấp quyền cho user này ở thư mục trên)

Thực hiện restart lại nginx và httpd và thử truy cập để xem kết quả, chú ý access log của nginx và apache để so sánh

Print Friendly

Comments

comments

Bài viết liên quan