Về cơ bản thì nó sẽ khá tương đồng với bài Tạo Localhost Web Public Với Cloudflare Tunnels Và LocalWP, có điều sử dụng VMware Workstation Pro + CentOS 7+ Centmin Mod+ Cloudflare Tunnels thì sẽ tối ưu về tốc độ và hiệu năng hơn
Nếu thích, bạn cũng có thể đổi sang dùng Ubuntu và cài Webinoly, có điều thao tác khi cài đặt OS phải ấn enter hơi nhiều thôi 😛 mình cũng đã thử cài, hiện năng các kiểu cũng bố đời cả 😀
VMware Workstation Pro + CentOS/Ubuntu thì để giả lập trên Windows, còn bạn nào có cái máy để không, cài trực tiếp CentOS 7/Ubuntu lên chắc hiệu quả hơn
Cài đặt VMware Workstation Pro
Cứ chọn bản mới nhất là được, cụ thể hiện tại mình đang dùng VMware® Workstation 17 Pro v17.0.0 build-20800274, serial thì gõ tên sản phẩm lên google, chọn 2-3 trang đầu là thấy cả 😀
CentOS 7
Chọn bản x86_64 cho máy PC thông thường, cụ thể ở đây mình dùng bản CentOS-7-x86_64-DVD-2009.iso
Cài đặt CentOS 7 trên VMware Workstation Pro
Một trong lý do mình giới thiệu cài CentOS 7 chứ không phải là Ubuntu vì nó …. nhàn, cài mặc định còn lại VMware Workstation 17 Pro tự cấu hình tất cả
Ở ảnh 3, khi tạo tài khoản, nhớ kĩ user name và password là được
Bước cấu hình phần cứng thì mình chọn 20Gb ổ cứng, 4Gb RAM, 4 CPU Core, mọi người có thể chọn dựa theo phần cứng máy mình mang có, thực tế thì cấu hình này nó mạnh chắc gấp 4 lần con VPS đang dùng cho thèng bibica.net 😀
Ở bản VMware Workstation Pro mới nhất thì nó tự làm hết rồi, bạn không phải động tay động chân cái gì nữa 😀
Sau ít phút là VMware Workstation Pro cài đặt xong, tự hiện ra phần login luôn 😀
Mặc định VMware Workstation Pro đặt password bạn chọn làm password cho tài khoản root luôn, thành ra ở màn hình login này, ấn vào Not listed? rồi nhập user “root”, password bạn chọn ở lúc cài đặt là vào thẳng root luôn
Về cơ bản lúc này cài đặt xong CentOS 7 rồi, CentOS thậm chí còn có sẵn giao điện các kiểu, y choang Windows luôn ^_^
Để lấy IP Address của con CentOS 7 này có thể làm như hình =)) cụ thể con số bạn thấy ở đây là 192.168.211.173
Văn vở hơn thì cũng có thể vào Terminal gõ dòng lệnh ifconfig, nó cũng sẽ ra IP Address ở dòng inet là 192.168.211.173
Lúc này chúng ta đã có được đầy đủ thông tin về con CentOS 7 chạy trên VMware Workstation Pro
IP: 192.168.211.173 User: root Password: *******
Bạn có thể dùng bất cứ tool, soft nào để kết nối vào, cá nhân thì mình vẫn quen dùng Bitvise SSH Client nên xài nó để login 😀
Cấu hình Cloudflare Tunnels
Tạo tài khoản Cloudflare Zero Trust ->Access -> Tunnel -> Create a tunnel -> đặt 1 tên cho dễ nhớ (centminmod-home-server chẳng hạn)
Chọn Red Hat -> 64-bit sau đó copy dòng lệnh họ để sẵn bên dưới, chạy với quyền root
Complete! 2022-12-09T13:13:53Z INF Using Systemd 2022-12-09T13:13:54Z INF Linux service for cloudflared installed successfully
Sau khi kết nối xong thì ở phần này mình nhận được data center tại Hồng Kông – Singapore
Cuối cùng ấn Next để qua bước sau
Public Hostname
Subdomain và Domain thì bạn đặt tùy ý theo tên bạn muốn, cụ thể mình đặt domain là ps2.bibica.net
Type(Required): HTTPS
URL(Required): localhost:443
Ấn vào Additional application settings -> TLS
No TLS Verify: Enabled
Phải set chính xác như thế thì các trang chạy https mới chạy bình thường, không thôi lỗi điên cuồng
Cài đặt Centmin Mod
Bạn có thể cài đặt Centmin Mod như thông thường (1 dòng duy nhất ở cuối), hoặc có thể dùng 1 số setting nâng cao hơn
EMAIL=youremail@address.com EMAILALT=youremail2@address.com mkdir -p /etc/centminmod touch /etc/centminmod/custom_config.inc echo $EMAIL >> /etc/centminmod/email-primary.ini echo $EMAILALT >> /etc/centminmod/email-secondary.ini echo "PUREFTPD_DISABLED='y'" >> /etc/centminmod/custom_config.inc echo "PHP_PGO_ALWAYS='y'" >> /etc/centminmod/custom_config.inc echo "PHP_PGO='y'" >> /etc/centminmod/custom_config.inc echo "PHP_BROTLI='y'" >> /etc/centminmod/custom_config.inc echo "PHP_LZFOUR='y'" >> /etc/centminmod/custom_config.inc echo "PHP_LZF='y'" >> /etc/centminmod/custom_config.inc echo "PHP_ZSTD='y'" >> /etc/centminmod/custom_config.inc echo "SET_DEFAULT_MYSQLCHARSET='utf8mb4'" >> /etc/centminmod/custom_config.inc echo "NGINX_LIBBROTLI='y'" >> /etc/centminmod/custom_config.inc echo "NGXDYNAMIC_BROTLI='y'" >> /etc/centminmod/custom_config.inc echo "WPCLI_CE_QUERYSTRING_INCLUDED='y'" >> /etc/centminmod/custom_config.inc echo "NGINX_SSLCACHE_ALLOWOVERRIDE='y'" >> /etc/centminmod/custom_config.inc echo "NGINX_STAPLE_CACHE_OVERRIDE='y'" >> /etc/centminmod/custom_config.inc echo "NGINX_STAPLE_CACHE_TTL='86400'" >> /etc/centminmod/custom_config.inc echo "AUTOHARDTUNE_NGINXBACKLOG='y'" >> /etc/centminmod/custom_config.inc echo "ZSTD_LOGROTATE_NGINX='y'" >> /etc/centminmod/custom_config.inc echo "ZSTD_LOGROTATE_PHPFPM='y'" >> /etc/centminmod/custom_config.inc yum -y update; curl -O https://centminmod.com/betainstaller74.sh && chmod 0700 betainstaller74.sh && bash betainstaller74.sh
Lý thuyết thì cài đặt setting này là tối ưu cho plugin Cache Enabler trên Centmin Mod
Bật thêm 1 số thứ kiểu PGO, BROTLI, LZ4, LZF và Zstd …. nó sẽ có tác dụng tốt hơn 1 xíu (3%-5%) ở các con VPS có cấu hình cao =)) đó giờ mình toàn dùng VPS 1 CPU, 1 GB RAM nên cũng ít quan tâm, đợt này thử trên localhost, có con VPS khỏe hơn nên thử coi làm sao
Gọi là tác dụng trên lý thuyết thôi hé, tại các config này chỉ có tác dụng trên PHP này nọ, mà giờ đa phần các trang đều chạy cache, load toàn html cả, tăng tốc tối ưu liên quan tới PHP, MySQL để làm gì đâu 😀 mặc định Centmin Mod cũng tốt lắm rồi
Cài đặt theo cấu hình này sẽ khá lâu, do PHP sẽ phải biên dịch thêm 1 lần 😀 lúc này bạn nên đi pha thêm ly cafe, kiếm miếng bánh mà ăn :]]
Total Curl Installer YUM or DNF Time: 69.6693 seconds Total YUM Time: 23.279221872 seconds Total YUM or DNF + Source Download Time: 82.7619 Total Nginx First Time Install Time: 199.9149 Total PHP First Time Install Time: 389.6355 Download From Github Time: 3.8103 Total Time Other eg. source compiles: 435.6659 Total Centmin Mod Install Time: 1107.9783 --------------------------------------------------------------------------- Total Install Time (curl yum + cm install + zip download): 1181.4579 seconds
Gõ tiếp
centmin
Điền email vào để hoàn thành cài đặt Centmin Mod, xong xuôi ấn tiếp 24 để thoát khỏi menu tùy chọn của Centmin Mod (lần đầu sau khi cài đặt xong cần ấn 24 hai lần)
Cài Đặt Google BBR
wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh chmod 755 /opt/bbr.sh /opt/bbr.sh
BBR lý thuyết nó sẽ giúp giảm độ trễ (ping) xuống thấp hơn, chủ yếu cài cho vui, thực tế đi qua Cloudflare Tunnels nhanh lắm rồi
Sau khi cài đặt xong nó sẽ yêu cầu reboot lại, gõ “y” vào xong enter là được
Cài Đặt WordPress
Cài Wordpress từ menu 22
Create a self-signed SSL certificate Nginx vhost? [y/n]: n
Không dùng Let’s Encrypt để tạo SSL
Phần Wordpress Caching chọn tùy chọn 1, sử dụng hệ thống cache KeyCDN Cache Enabler
Domain tạo ra ở đây phải giống với phần Public Hostname điền ở trên là: pc2.bibica.net
Trong trường hợp muốn tạo thêm các domain, supdomain khác thì vào Cloudflare Tunnels -> Public Hostname tạo thêm
Cấu Hình SSL Signed By Cloudflare
Về SSL thì mình dùng SSL từ Cloudflare, bạn chỉ việc vào tạo 1 lần cho domain gốc, sau đó có thể dùng file này cho tất cả subdomain, vấn đề review này nọ Cloudflare làm cả, thời gian đa phần 10-15 sẵn rồi, nhàn hơn rất nhiều so với dùng của Let’s Encrypt (cứ vài tháng lại phải review 1 lần)
Chép 2 file bibica.net.key và bibica.net.pem vào /root/ssl/
sudo nano /usr/local/nginx/conf/conf.d/pc2.bibica.net.conf
Thêm đoạn code bên dưới vào đầu của file config
server { listen 80; listen [::]:80; server_name pc2.bibica.net www.pc2.bibica.net; return 301 https://$host$request_uri; }
Ở dòng listen 80; thay bằng đoạn code bên dưới
listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /root/ssl/bibica.net.pem; ssl_certificate_key /root/ssl/bibica.net.key; add_header Strict-Transport-Security 'max-age=63072000; includeSubDomains; preload';
Sau đó chạy tiếp dòng dưới để reload lại nginx, để thay đổi có hiệu lực
nginx -t service nginx reload
Thử nghiệm kết quả
Ban đầu mình chỉ tính viết tới đoạn cấu hình ssl xong rồi thôi, nên xóa đi, mà nghĩ lại nên có phần thử nghiệm kết quả nữa, nên tạo mới lại, restore thèng bibica.net lên con VPS tại máy bàn, đang dùng đường truyền của nhà mạng VNPT, gói Home Tiết Kiệm, domain là pc.bibica.net, máu chó set lên 8GB RAM, chạy 16 core CPU cho sướng mắt 😀 do dùng hệ điều hành CentOS và cài Centmin Mod nên độ mượt rất tốt, không khác gì chuyện dùng host chuyên dụng cả
Thử 1 bài Speedtest Bench.Sh, thấy nó detect IP ra tận thành phố luôn 😀
Trừ cụm FPT mạng nay ngáo sao đó, các mạng khác ở Việt Nam đều max speed, tốc độ đi quốc tế cũng rất ấn tượng, ping US thậm chí xuống được 175 ms, dạo này VNPT speed quốc tế ổn thật
Thử Performance Test từ keycdn
So sánh trực tiếp với con VPS UpCloud của thèng bibica.net đang dùng thì thấy TTFB không khác vẹo gì cả 😀
Thử load toàn trang thì có vẻ không ổn lắm 😀 với các truy cập ở các nước châu Âu, tốc độ lệch gần 40% so với con host tại Sing, khi thử trực tiếp với IP US, thì thấy đúng là tổng thời gian cũng chậm hơn tầm 20-30%, được cái đó là tính tổng thời gian load tất cả mọi thứ, còn nếu chỉ lướt đọc thuần túy ấn để nó hiện qua trang, tìm kiểm nó ra kết quả …. thì gần như không thấy sự khác biệt giữa hots Sing và host VN 😀
Khoản chịu tải này nọ thì mình không bàn, phần bản thân Centmin Mod đã viết rất tốt rồi, phần thì trang blog đọc tin xử lý rất dễ, đa phần tùy vào cấu hình VPS là chính, bữa mình có thử thì với cấu hình 8 GB RAM, CPU 16 core nó cân 400 khách cùng truy xuất mỗi giây. không dùng bất cứ cơ chế cache nào cũng nổi, mỗi cái CPU máy bàn load 100% luôn 😀 thèng bibica.net dùng 1 GB RAM, 1 core CPU, không cache tầm 50 khách vào là lê lết rồi 😀
Tổng kết
Nói chung giải pháp dùng máy bàn tại VN làm server không hề tệ, nhờ có Cloudflare Tunnels nên thực tế khách vào sẽ đi qua 1 proxy tại Sing trước, nên kể cả có đứt cáp, khách ở mọi nơi đều có thể truy cập vào với tốc độ tương đối, xử lý các vấn đề liên quan tới tốc độ cũng cực dễ trên WordPress
Mỗi cái chi phí tiền điện, tiền nét, thiết bị để làm trò này tính ra …. còn mắc hơn thuê từ các dịch vụ VPS thông thường, cũng hiếm ai đi làm trò con bò này 😀 trừ vài trang share crack, hack … các thứ có bản quyền, mới phải làm 1 cái server private kiểu tại nhà cho chắc kèo
Chung quy lại, cái này nó hợp nhất cho các bạn xài laptop, muốn share project public cho khách xem demo, thay vì phải gửi rườm rà, có thể ngồi thẳng tại quán cafe, mở máy lên 1 phát share được luôn 😀 còn làm thành 1 cái server thực sự, ăn vài quả cúp điện, rớt mạng thì đúng bách cả nhục 😀
Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!