Cấu hình nginx share hosting nhiều domain
Hẳn hầu hết với mỗi lập trình viên web đều biết đến Nginx có thể cấu hình để share hosting nhiều ứng dụng web ở các tên miền khác nhau. Đối với lập trình viên PHP, việc lập trình đồng thời một lúc nhiều dự án là điều gần như bắt buộc. Môi trường thực hành: Mountain Lion 10.8.4 Nginx 1.5.5, PHP ...
Hẳn hầu hết với mỗi lập trình viên web đều biết đến Nginx có thể cấu hình để share hosting nhiều ứng dụng web ở các tên miền khác nhau. Đối với lập trình viên PHP, việc lập trình đồng thời một lúc nhiều dự án là điều gần như bắt buộc.
Môi trường thực hành:
Mountain Lion 10.8.4 Nginx 1.5.5, PHP 5.5.4 cùng với PHP-FPM
Thư mục quan trọng mọi cấu hình đều diễn ra ở đây /usr/local/etc/nginx
cd /usr/local/etc/nginx nano nginx.conf
Cấu hình trong nginx.conf càng đơn giản càng tốt. Chúng ta sẽ bổ xung cấu hình chi tiết ở các file cấu hình riêng cho từng domain.
worker_processes 2; #mặc định là 1 CPU càng nhiều core thì có thể tăng lên nhưng không được vượt quá số core tối đa của CPU. events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; keepalive_timeout 65; gzip on; include conf.d/*.conf; include sites-enabled/*; #Dòng lệnh này sẽ include thêm cấu hình cho từng do ứng dụng web sẽ share hosting }
Tạo thư mục site-enabled trong /usr/local/etc/nginx để chưa các file cấu hình cho từng ứng dụng web. Ví dụ tôi có 3 web site đang phát triển là: conair.com, audiogara.com, và macx.com. Các bước sau đây sẽ tạo ra các file cấu hình cho từng ứng dụng web trong thư mục site-enabled:
cd /usr/local/etc/nginx #chuyển đến thư mục cấu hình nginx ls #dir thư mục xem có gì mkdir sites-enabled #tạo thư mục để chứa các file cấu hình cho từng web site shared hosting cd sites-enabled #chuyển vào bên trong đó nano audiogara.com #dùng trình nano soạn thảo nội dung file cấu hình audiogara.com
Nội dung file cấu hình cho web site audiogara.com. Lưu ý chuyển tới thư mục /usr/local/var/www rồi gõ lệnh Phalcon Devtools phalcon project audiogara.com để tạo khung dự án đặt trong thư mục audiogara.com
server { listen 80; index index.php index.html index.htm; set $root_path '/usr/local/var/www/audiogara.com/public'; #Đối với ứng dụng PHP Phalcon thư mục root sẽ là public nằm trong thư mục dự án root $root_path; server_name audiogara.com; #Tên miền ứng dụng. Cần sửa file /etc/hosts để ánh xạ 127.0.0.1 audiogara.com try_files $uri $uri/ @rewrite; location @rewrite { rewrite ^/(.*)$ /index.php?_url=/$1; } #Cấu hình để gọi tới PHP-FPM FastCGI ở cổng 9000 location ~ .php { include fastcgi.conf; fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; } location ~* ^/(css|img|js|flv|swf|download)/(.+)$ { root $root_path; } #bỏ qua các file .htaccess location ~ /.ht { deny all; } }
Sửa đổi file host
Các ứng dụng web trong lúc phát triển ở máy local cần gán tên miền vào IP của localhost là 127.0.0.1
sudo nano /etc/hosts #mở file hosts ra để sửa #Bổ xung các dòng dưới đây vào hosts. #Các tên miền cùng trỏ vào một địa chỉ 127.0.0.1 127.0.0.1 conair.com 127.0.0.1 audiogara.com 127.0.0.1 macx.com