LEMP cho Centos 7: Thêm website cho NGINX

Bài này thuộc phần 2 của 7 trong series LEMP cho CentOS 7

Ở bài trước bạn đã cài đặt thành công LEMP cho CentOS 7. 

Bài viết hôm nay chúng ta sẽ thêm website hay domain vào NGINX.

1. Thiết lập cấu hình cho NGINX

Ở bài trước chúng ta đã tạo một file cấu hình /etc/nginx/conf.d/default.d. Bây giờ chúng ta sẽ tối ưu thêm cho file này. 

Đầu tiên bạn tạo ​/etc/nginx/conf.d/block.conf bằng nano: 

nano /etc/nginx/conf.d/block.conf

Copy và paste dòng code sau: 

location = /robots.txt { access_log off; log_not_found off; } location = /favicon.ico { access_log off; log_not_found off; expires 30d; } location ~ /\. { access_log off; log_not_found off; deny all; } location ~ ~$ { access_log off; log_not_found off; deny all; } location ~ /\.git { access_log off; log_not_found off; deny all; } location = /nginx.conf { access_log off; log_not_found off; deny all; }

Lưu lại file và thoát khỏi nano. Ý nghĩa của file này sẽ chặn truy cập vào các file/thư mục đặc biệt.

Tiếp theo bạn tạo file staticfiles.conf

nano nano /etc/nginx/conf.d/staticfiles.conf

Copy và paste dòng code sau: 

location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ { gzip_static off; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; access_log off; expires max; break; } location ~* \.(css|js)$ { #add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; access_log off; expires 30d; break; }

Code trên đảm bảo cho hiệu suất khi NGINX xử lý file tĩnh. 

Bây giờ bạn mở file default.conf ra​

nano /etc/nginx/conf.d/default.conf

Sửa nó lại với kết quả cuối cùng như sau: 

server { listen 80; server_name 172.104.118.97; # note that these lines are originally from the "location /" block root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } include /etc/nginx/conf.d/staticfiles.conf; include /etc/nginx/conf.d/block.conf; }

Tiếp theo, chúng ta mở file nginx.conf: 

nano /etc/nginx/nginx.conf

Tìm dòng sau: 

include /etc/nginx/conf.d/*.conf;

Sửa lại thành: 

include /etc/nginx/domains/*.conf;

Bây giờ khởi động lại ngix: 

systemctl nginx restart

Thêm domain vào NGINX

Nhớ trỏ domain về server của bạn.

Bạn cần xây dựng quy tắc đường dẫn lưu website ở đâu trên server.

Ở đây mình sẽ lưu website theo đường dẫn: /home/nginx/your_domain.com.

Trong thư mục trên chúng ta sẽ 2 tạo thư mục:

  • log: chứa log cho cho domain. Ở đây chúng ta sẽ có một file error.log
  • public_html​: thư mục chúng ta sẽ cài đặt wordpress ở đây. 

Ví dụ mình sẽ thêm domain thuthuatwp.com vào NGINX như sau: (thay domain của mình bằng của bạn)

mkdir -p /home/nginx/thuthuatwp.com/log touch /home/nginx/thuthuatwp.com/log/error.log mkdir -p /home/nginx/thuthuatwp.com/public_html chown -R nginx:nginx /home/nginx

Tiếp theo chúng copy file default.conf thành yourdomain.com.conf như thế này; 

cp /etc/nginx/domains/default.conf /etc/nginx/domains/thuthuatwp.com.conf

Mở file your_domain.com.conf và thay đổi như sau: 

Thay dòng server name thành ​

server_name www.your_domain.com your_domain.com;

Thêm dòng sau: 

error_log /home/nginx/your_domain.com/log/error.log error;

Thay dòng 

root /usr/share/nginx/html;

Thành: 

root /home/nginx/your_domain.com/public_html;

File your_domain.com.conf cuối cùng sẽ như thế này cho domain thuthuatwp.com của mình: 

server { listen 80; server_name khamphaso.com wwww.khamphaso.com; # note that these lines are originally from the "location /" block root /home/nginx/khamphaso.com/public_html; index index.php index.html index.htm; error_log /home/nginx/khamphaso.com/log/error.log error; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } include /etc/nginx/conf.d/staticfiles.conf; include /etc/nginx/conf.d/block.conf; }

Bây giờ khởi động lại NGIX

systemctl nginx restart

Test lại xem website thêm vào đã hoạt động OK chưa. 

Bạn tạo một file info.php trong thư mục public_html ​

nano /home/nginx/your_domain.com/public_html/info.php

Thêm dòng code sau: 

<?php phpinfo(); ?>

Sau đó truy cập http://your_domain.com/info.php nếu thấy trang thế này thì OK: 

cài đặt lemp centos 7 1

Những website tiếp theo bạn thêm vào thì lặp lại bước trên. Dùng VPS không có khái niệm bao nhiêu website như shared host.

Bạn có thể thêm thỏa thích. Quan trọng cấu hình máy chủ của bạn có chịu đựng được traffic của chúng hay không mà thôi. 

Xem bài trong seriesPhần trước: Hướng dẫn cài LEMP stack trên CentOS 7Phần kế tiếp: Cách cấu hình Nginx để tối ưu hóa hiệu suất