LEMP cho VPS [Phần 2] – Thêm VirtualHost (thêm domain) cho NGINX [NEW]

Ở bài trước chúng ta đã có VPS [Phần 1] – Cài đặt NGINX và PHP-FPM “href =” https://thachpham.com/hosting-domain/lemp-cho-vps-phan-1-cai-dat-nginx-va-php-fpm.html”>cài đặt thành công NGINX và PHP-FPM phiên bản mới nhất lên VPS sử dụng CentOS 6.5 rồi, nhưng ở đây mình chưa hướng dẫn các bạn add domain vào VPS và tạo thư mục riêng cho domain đó nên ở đây mình sẽ hướng dẫn:

  • Đặt lại thư mục cấu hình NGINX.
  • Cách thêm VirtualHost.

Tại sao tôi cần đặt lại thư mục cấu hình NGINX? Đó là vì sau này, bạn sẽ dễ dàng thêm các tên miền khác, chỉ cần copy một vài lệnh, mình sẽ hướng dẫn ở cuối bài.

I. Đặt lại NGINX. thư mục cấu hình

Bạn chỉ cần thực hiện bước này một lần.

Trước khi chúng tôi tiến hành đặt lại thư mục cấu hình, chúng tôi sẽ cần bạn hiểu lý do tại sao chúng tôi nên làm điều đó. Bây giờ hãy mở tệp default.conf trong thư mục /etc/nginx/conf.d/ lên, đây là những gì trong đó:


server {
listen 80;
server_name localhost;

#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ .php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
#
#location ~ /.ht {
# deny all;
#}
}

Trong đó, những đoạn mình tô đậm đều sẽ được sử dụng trên nhiều tên miền khác nhau nên chúng ta sẽ mang từng phần của nó ra các tệp riêng biệt, sau đó sử dụng cú pháp bao gồm trong NGINX để nhúng các tệp này vào VirtualHost, vừa chuyên nghiệp vừa gọn gàng.

Do đó, hãy xóa tất cả các đoạn mà tôi đã tô đậm ở trên và bắt đầu tạo các tệp bên dưới, các tệp này đều được tạo trong thư mục /etc/nginx/conf.d/ Xin vui lòng.

Đầu tiên hãy tạo tệp php.conf và đưa nội dung này vào:


# Ép xử lý PHP thông qua PHP-FPM
location ~* .php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;

# Thiết lập timeout cho proxy
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 512k;
fastcgi_buffers 512 16k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
fastcgi_intercept_errors on;
}

Nếu bạn sử dụng Xenforo, hãy sử dụng các đoạn dưới đây # Thiết lập timeout cho proxy Đi.

Tiếp tục tạo tệp block.conf để chặn các tệp / thư mục truy cập


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; }

Tạo thêm tên tệp staticfiles.conf và chèn những thứ 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;
}

Sau đó mở tệp default.conf tìm ra và tìm thấy:

#access_log  /var/log/nginx/log/host.access.log  main;

Thêm đoạn này bên dưới nó:

root   /usr/share/nginx/html;

Đồng thời xóa 2 đoạn có trong location / {.

Sau đó chèn 3 đoạn này vào trước dấu } ở cuối tệp.


include /etc/nginx/conf.d/php.conf;
include /etc/nginx/conf.d/staticfiles.conf;
include /etc/nginx/conf.d/block.conf;

Sau khi chỉnh sửa và chèn, tệp default.conf sẽ trông như thế này:


server {
listen 80;
server_name localhost;

#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
root /usr/share/nginx/html;

location / {

}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

include /etc/nginx/conf.d/php.conf;
include /etc/nginx/conf.d/staticfiles.conf;
include /etc/nginx/conf.d/block.conf;

}

Tiếp theo, bạn quay lại thư mục / etc / nginxtạo một thư mục khác có tên các miền và chuyển tập tin default.conf vào thư mục này.

[bash]mkdir / etc / nginx / domains
mv /etc/nginx/conf.d/default.conf / etc / nginx / domains[/bash]

Cuối cùng, mở tệp nginx.confTìm thấy:

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

Thay đổi nó thành

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

Tìm thêm

access_log  /var/log/nginx/access.log  main;

Chèn đoạn này bên dưới nó:

index index.php  index.html index.htm;

Nếu bạn muốn tiết kiệm CPU, hãy thêm # vào trước access_log để không cho phép nó ghi lại các lượt truy cập vào trang web và VPS.

Bây giờ bạn có thể khởi động lại NGINX.

[bash]khởi động lại dịch vụ nginx[/bash]

II. Thêm VirtualHost vào NGINX

Lặp lại bước này khi bạn cần thêm miền khác.

Trước khi thêm VirtualHost, chúng ta sẽ cần thống nhất cách lưu đường dẫn tệp của từng miền cho khoa học.

Tôi khuyên bạn nên vào thư mục / home, tạo thêm một thư mục tên là nginx và các thư mục của mỗi miền sẽ được lưu trong đó. Ví dụ: /home/nginx/abcxyz.com.

Trong mỗi thư mục của miền, chúng ta cần có thêm 2 thư mục bao gồm:

  • log / – Để chứa các tệp nhật ký cho từng miền. Trong đó sẽ có một tệp tên lỗi.log.
  • public_html / – Thư mục chứa mã website của bạn, cụ thể sau này chúng ta sẽ cài đặt WordPress tại đây.

Vì vậy, ví dụ: tôi cần thêm một miền abcxyz.com vào NGINX, sẽ chạy các lệnh sau (hãy nhớ thay đổi nó trở lại tên miền bạn cần thay đổi, không chỉ sao chép và dán):

[bash]mkdir -p /home/nginx/abcxyz.com/log
chạm vào /home/nginx/abcxyz.com/log/error.log
mkdir -p /home/nginx/abcxyz.com/public_html
chown -R nginx: nginx / home / nginx[/bash]

Sau đó, chúng tôi sẽ sao chép tệp default.conf Pháo đài abcxyz.com.conf đặt trong cùng một thư mục

[bash]cp /etc/nginx/domains/default.conf /etc/nginx/domains/abcxyz.com.conf[/bash]

Mở tệp abcxyz.com.conf lên và tìm:

server_name  localhost;

Thay đổi thành

server_name  www.abcxyz.com abcxyz.com;

Tìm thêm

#access_log  /var/log/nginx/log/host.access.log  main;

Thêm bên dưới nó

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

Tìm thêm

root   /usr/share/nginx/html;

Thay đổi thành

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

Bây giờ hãy lưu và khởi động lại NGINX

[bash]khởi động lại dịch vụ nginx[/bash]

Để kiểm tra xem cả VirtualHost và PHP-FPM có hoạt động bình thường hay không, hãy tạo một tệp có tên info.php lưu trong thư mục public_html của miền vừa được thêm với nội dung là:


<?php phpinfo(); ?>

Sau đó ghé thăm http://abcxyz.com/info.phpnếu nó hiển thị trang PHP như bên dưới thì nó đã thành công.

LEMP cho VPS [Phần 2] – Thêm VirtualHost (thêm domain) cho NGINX [NEW]

Trên trang đó, bạn có thể tìm thấy thông tin quan trọng về phiên bản PHP mà bạn đang cài đặt.

Sau này nếu bạn muốn thêm tên miền khác, chỉ cần lặp lại bước thêm VirtualHost này.

Lúc này bạn hãy cân nhắc thêm VirtualHost, phần tiếp theo chúng ta sẽ làm thêm một số bước để tối ưu NGINX tốt hơn vì từ trước đến giờ chúng ta vẫn chưa tối ưu được file nginx.conf.

Đánh giá nội dung này

Tiếp tục đọc trong bộ truyện