Mục lục
Trong bài viết trước, Zhost đã hướng dẫn các bạn cấu hình Virtual host cho Apache. Vậy để chạy nhiều website trên cùng Web server Nginx, hôm nay chúng tôi sẽ hướng dẫn bạn cấu hình Virtual host cho Nginx.
Các bước cấu hình Virtual host cho Nginx trên
Mô hình Lab
Trong bài lab này, Zhost sẽ sử dụng một Server Centos 7 có IP 10.10.10.11 cài đặt Nginx Web Server.
Trên server sẽ cấu hình chạy 2 web site là:
- web1.com – đường dẫn: /var/www/web1
- web2.com – đường dẫn: /var/www/web2
Vô hiệu hoá SELinux theo bài viết: Cách vô hiệu hóa SELinux trên CentOS
Cài đặt Nginx Web Server
Cài đặt Nginx các bạn có thể tham khảo bài viết: Cài đặt LEMP trên CentOS 7
Cấu hình Virtual Host cho Nginx
Tạo Folder chứa code cho 2 website web1 và web2 (với tuỳ chọn-p
cho phép ta tạo ra những thư mục con lồng trong nó)
sudo mkdir -p /var/www/web1 sudo mkdir -p /var/www/web2
Chỉnh sửa quyền truy cập sao cho quyền đọc được chấp nhận với tất cả các file và thư mục bên trong /var/www
sudo chmod -R 755 /var/www
Tạo ra file index.html đơn giản cho 2 website để kiểm thử hoạt động của Virtual host.
touch /var/www/web1/index.html touch /var/www/web2/index.html echo "<center><h1>This is website web1.com - Nginx</h1></center>" > /var/www/web1/index.html echo "<center><h1>This is website web2.com - Nginx</h1></center>" > /var/www/web2/index.html
sudo nano /etc/nginx/conf.d/web1.conf
server { listen 80; listen [::]:80; server_name web1.com; root /var/www/web1; index index.php index.html; access_log /var/www/web1/access.log; error_log /var/www/web1/error.log; location / { try_files $uri $uri/ =404; } }
- listen 80: Lắng nghe và nhận các kết nối trên cổng 80 (HTTP Port)
- listen [::]:80: Tương tự nhưng cho địa chỉ IPv6
- server_name: Địa chỉ tên miền cho website
- root: Đường đẫn thư mục chứa source code website
- index: File sẽ gọi đến đầu tiên khi User vào website
- access_log: Đường dẫn đến file log truy cập
- error_log: Đường dẫn đến file log lỗi
- location: Cách trả về tài nguyên trên máy chủ, khi có request tới 1 URL
sudo nano /etc/nginx/conf.d/web2.conf
server { listen 80; listen [::]:80; server_name web2.com; root /var/www/web2; index index.php index.html; access_log /var/www/web2/access.log; error_log /var/www/web2/error.log; location / { try_files $uri $uri/ =404; } }
sudo systemctl reload nginx
Như vậy ta đã cấu hình xong Virtual host cho 2 website.
Kiểm tra hoạt động
Trên trình duyệt web của User, bạn vào web1.com và web2.com để kiểm tra lần lượt,
Nếu ra nội dung như ta setup ban đầu thì đã thành công.
Truy cập web1.com
Truy cập web2.com
Lưu ý: Trong khuôn khổ bài lab này bạn sẽ cần phải trỏ ip trong file hosts của windows để có thể phân dải 2 tên miền web1.com và web2.com về ip của Web server.
Zhost chúc các bạn thành công!