Cấu hình nginx chạy WordPress và redirect http to https trên Nginx

Với các server chạy Apache để tự động chuyển từ http sang https chúng ta sẽ edit file .htaccess Nhưng với nginx thì không sử dụng .htaccess nên sẽ phải cấu hình file vhost (tương tự .htaccess trên Apache).

Lưu ý: Trước khi các bạn đọc tiếp thì lưu ý. Tú không phải chuyên về Server, mình chỉ tự học và chia sẻ nội dung này để làm phần ghi nhớ cho bản thân. Khi công việc hiện tại và trong tương lai cần sử dụng đến mình có thể đọc lại, fix lỗi cho sản phẩm nhanh chóng. Bởi vậy, bạn nên cân nhắc và backup trước khi làm theo.

Cấu hình nginx Redirect 301 cho WordPress

Cấu hình nginx Redirect 301 cho WordPress

Cách tìm ra file vhost của User để cấu hình

  1. Với Server chạy Directadmin thông thường sẽ đặt ở đường dẫn (tên file là nginx.conf): /usr/local/directadmin/data/users/

Cấu hình tự động chuyển từ http sang https trên nginx

Đầu tiên mở file vhost của user

Bạn tìm đoạn

Source code    
server_name

Thêm vào bên dưới nó.

Source code    
server_name _;
	return 301 https://$host$request_uri;
[/code]

Lưu ý: Với Website sử dụng DirectAdmin thì khi cài đặt https thì nó sẽ tự tạo ra 2 phần cấu hình với cổng 80 (http) và 443 (chạy ssl). Chúng ta sẽ thêm đoạn trên vào phần cấu hình cho http . (Bạn có thể tham khảo nội dung file vhost của Tú để hiểu rõ hơn)

Source code    
# Auto generated nginx config file by DirectAdmin version 1.50.1
# Modifying this file is not recommended as any changes you make will be
# overwritten when the user makes any changes to their website

# For global config changes that affect all Users, see this guide:
# http://help.directadmin.com/item.php?id=558
# For local config changes that only affect one User, see this guide:
# http://help.directadmin.com/item.php?id=3

 
server
{
	listen 103.47.193.16:80;
	server_name nguyencaotu.com www.nguyencaotu.com ;
	server_name _;
	return 301 https://$host$request_uri;	
	access_log /var/log/nginx/domains/nguyencaotu.com.log;
	access_log /var/log/nginx/domains/nguyencaotu.com.bytes bytes;
	error_log /var/log/nginx/domains/nguyencaotu.com.error.log;
	root /home/*****/domains/nguyencaotu.com/public_html;
	index index.php index.html index.htm;
	include /usr/local/directadmin/data/users/*****/nginx_php.conf;
	include /etc/nginx/webapps.conf;
	location / {
        try_files $uri $uri/ /index.php?$args ;
    }	
}
 
server
{
	listen 103.47.193.16:443 ssl;
	server_name nguyencaotu.com www.nguyencaotu.com ;
	access_log /var/log/nginx/domains/nguyencaotu.com.log;
	access_log /var/log/nginx/domains/nguyencaotu.com.bytes bytes;
	error_log /var/log/nginx/domains/nguyencaotu.com.error.log;
	root /home/*****/domains/nguyencaotu.com/private_html;
	index index.php index.html index.htm;
	location / {
        try_files $uri $uri/ /index.php?$args ;
    }	
	ssl on;
	ssl_certificate /usr/local/directadmin/data/users/*****/domains/nguyencaotu.com.cert.combined;
	ssl_certificate_key /usr/local/directadmin/data/users/*****/domains/nguyencaotu.com.key;
	include /usr/local/directadmin/data/users/*****/nginx_php.conf;
	include /etc/nginx/webapps.ssl.conf;
}

Cấu hình chạy wordpress trên nginx

Mặc định nếu ko cấu hình lại vhost thì toàn bộ link của Website sử dụng WordPress khi click vào sẽ báo lỗi 404. Để làm điều này bạn thêm đoạn mã sau vào vhost trước thẻ đóng }. (tham khảo đoạn cấu hình mẫu của Tú ở trên)

Source code    
location / {
        try_files $uri $uri/ /index.php?$args ;

Bài viết này sẽ tiếp tục được cập nhật. Tú sẽ sử dụng nó để ghi chú lại những cấu hình thường sử dụng trên nginx cho wordpress. Tú không chuyên về Server và chỉ tự học, nếu có gì hiểu sai rất mong được các bạn comment góp ý.

Cảm ơn.

Nhận tuyệt chiêu Marketing

Tài liệu, bí quyết, case study... giúp bạn gia tăng 200% doanh số Online.

Chúng ta luôn giống nhau ở những thứ lớn lao và chỉ khác nhau ở chi tiết.

Xin hãy kiểm tra email để hoàn tất

Leave a Reply

Nhận tuyệt chiêu Marketing

Nhận tuyệt chiêu Marketing

Đừng bao giờ để đối thủ của bạn biết điều này.

 

Hãy là những người đi đầu và cập nhật xu hướng, cách làm hiệu quả nhất.

Xin hãy kiểm tra email để hoàn tất