Thứ Tư, 31 tháng 8, 2016

NGINX làm Reverse Proxy cho Apache


TẠI SAO NÊN SỬ DỤNG ĐỒNG THỜI NGINX VÀ APACHELÀM WEB SERVER.

Nginx và Apache là hai trong số những phần mềm Web Server miễn phí tốt nhất hiện nay. Tuy nhiên cả hai đều có những ưu nhược điểm riêng, nếu chúng ta biết cách kết hợp cả hai phần mềm này lại thì website của chúng ta chắc chắn sẽ có được hiệu suất tối ưu nhất.
Về ưu điểm, nếu như Apache có khả năng xử lý mạnh các dữ liệu không tĩnh như các truy vấn dữ liệu, các dạng dữ liệu tính toán, nhập xuất,… thì Nginx lại có ưu thế cao về xử lý các dữ liệu tĩnh như hình ảnh, scripts, giao diện,…
Về khuyết điểm, Apache lại tiêu hao quá nhiều tài nguyên bộ nhớ để xử lý các truy vấn, còn Nginx lại xử lý PHP rất chậm với module PHP-FPM hoặc các module xử lý dữ liệu động khác.
Bài viết này sẽ hướng dẫn các bạn cách kết hợp cả 2 Web Server Nginx vàApache lại để website của bạn có được một tốc độ tối ưu nhất!

BƯỚC 1: CÀI ĐẶT WEB SERVER APACHE CƠ BẢN

Các bạn có thể thực hiện lệnh cài Apache, PHP và MySQL bằng các lệnh sau:
yum install httpd mysql mysql-server php php-mysql -y
Cấu hình các dịch vụ Apache và MySQL Server có thể khởi động cùng hệ thống:
chkconfig httpd on
chkconfig mysqld on
Khởi động Web Server Apache và MySQL Server
service mysqld start
service httpd start
Như vậy, việc cài đặt Web Server Apache đã hoàn tất, các bạn có thể upload website vào thư mục /var/www/html/
Tuy nhiên, mình khuyến nghị các bạn nên cài đặt một trình quản lý như Direct Admin để các bạn có thể thao tác dễ dàng hơn, đặc biệt là với những bạn mới bắt đầu tìm hiểu về hệ thống. Chi tiết bài Hướng dẫn cài đặt Direct Admin các bạn có thể xem tại đây.

BƯỚC 2. CÀI ĐẶT NGINX

Các bạn sử dụng lệnh sau để thực hiện tải các thư viện cần thiết trong quá trình cài đặt Nginx:
yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel
Tiếp tục sử dụng các lệnh sau để tải Source Nginx về:
nginxVersion="1.8.0"    #1.8.0 là phiên bản Nginx bạn muốn sử dụng
wget http://nginx.org/download/nginx-$nginxVersion.tar.gz
tar -xzf nginx-$nginxVersion.tar.gz
ln -sf nginx-$nginxVersion nginx
Cuối cùng, chạy đoạn lệnh sau để bắt đầu cấu hình tự động & cài đặt Nginx:
mkdir -p /tmp/nginx/client/
mkdir -p /var/tmp/nginx/proxy/
cd nginx
./configure \
--user=nginx \
--group=nginx \
--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-pcre \
--with-file-aio \
--with-http_realip_module \
--without-http_scgi_module \
--without-http_uwsgi_module \
--http-client-body-temp-path=/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/
make && make install
useradd -r nginx
wget -O /etc/init.d/nginx https://gist.github.com/sairam/5892520/raw/b8195a71e944d46271c8a49f2717f70bcd04bf1a/etc-init.d-nginx
chmod +x /etc/init.d/nginx
chkconfig --add nginx
chkconfig --level 345 nginx on
Như vậy, quá trình cài đặt Nginx đã thành công!

BƯỚC 3: CẤU HÌNH NGINX LÀM REVERSE PROXY CHO APACHE

Mở file cấu hình Nginx bằng lệnh:
nano /etc/nginx/nginx.conf

Thêm đoạn code sau vào vùng 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://100.99.0.11:8080; #Với 100.99.0.11 là IP Publc của Server bạn và 8080 là Port Apache của bạn
Lưu ý: Do Nginx hoạt động ở Port 80 và 443 (nếu bạn có dùng SSL), nên bạn cần phải đổi Port Apachethành port khác như là 8080 và cấu hình như hướng dẫn ở trên thì mới khởi động được Nginx nha.

Hướng dẫn đổi port Apache

Mở file cấu hình của Apache bằng lệnh:
nano /etc/httpd/conf/httpd.conf
Tìm và sửa Listen 80 thành Listen 8080
Sau đó sửa tiếp các thiết lập về Virtual Host như hình minh họa sau:

(thay đổi các port :80 thành :8080)
Như vậy, quá trình cấu hình Nginx làm Reverse Proxy cho Apache đã thành công, ở bài tiếp theo mình sẽ tiếp tục hướng dẫn các bạn cách cache dữ liệu bằng Nginx để giúp tốc độ truy cập website của các bạn có thể cải thiện hơn nữa!
 Đừng quên restart lại Apache và Nginx để các thay đổi trên có hiệu lực nhé:
service httpd restart
service nginx restart
Duong Nguyen
Duong Nguyen

Work hard and learn more invaluable lessons when serving in professional business oriented environment so as to accumulate more experience for further overall advancement.

Vui lòng chia sẻ cảm nghĩ của bạn / Spread out Your Opinions

Vui lòng sử dụng Tiếng Việt có dấu và không bình luận quảng cáo hoặc nội dung không liên quan tới chủ đề.
Please use English to post a comment and do not spamming or marketing.