Hướng dẫn cách xây dựng Go để chạy đa nền tảng trên Ubuntu 20.04

Lượt xem
Home

Việc build một ứng dụng đa nền tảng đã trở nên rất quen thuộc với các lập trình viên ngày nay. Chính vì thế, các kiến trúc trở nên đa dạng và không ngừng thay đổi, điều này yêu cầu cần phải có một công cụ giúp hỗ trợ việc build ứng dụng dễ dàng hơn. Dưới đây sẽ là bài viết về cách xây dựng Go trên Ubuntu 20.04, nội dung trong bài sẽ giúp bạn tìm hiểu về công cụ của Go giúp build một ứng dụng trên các nền tảng khác nhau một cách tự động và nhanh chóng.

Giới thiệu về ngôn ngữ Go

Ngôn ngữ lập trình Go hay Golang cung cấp một chuỗi rất nhiều các công cụ hữu ích giúp cho việc lấy các packages và xây dựng các executables (các files khả thực thi) trở nên dễ dàng hơn bao giờ hết. Và một trong những tính năng mạnh mẽ nhất của Go là khả năng xây dựng các executables đa nền tảng miễn là nền tảng đó có hỗ trợ cho Go.

Ngôn ngữ lập trình Golang
Ngôn ngữ lập trình Golang

Điều này giúp cho việc kiểm thử và phân phối các packages trở nên thuận lợi hơn, bởi vì các bạn sẽ không cần phải truy cập vào một nền tảng cụ thể nào để có thể phân phối package cho chính nền tảng đó.

Với những ưu điểm trên của Go, trong bài hướng dẫn này các bạn sẽ sử dụng các công cụ trong Go để lấy một package trong Version Control System và tự động cài đặt các executables của package đó. Sau đó, các bạn sẽ tự tay xây dựng và cài đặt một file executable để làm quen được với quá trình đó. Cuối cùng là xây dựng một file executable cho các kiến trúc nền tảng khác, và tự động quá trình xây dựng để tạo các file executables cho đa nền tảng.

Khi đã hoàn thành, các bạn sẽ biết được cách để xây dựng các file executables cho WindowsMacOS, cũng như là các nền tảng khác theo mong muốn của mình.

Yêu cầu tiên quyết cho cách xây dựng Go trên Ubuntu 20.04

Đầu tiên, trước khi bước vào thực hành các bước, các bạn cần phải đảm bảo máy của mình có đủ các điều kiện sau:

  • Thứ nhất là một máy chủ Ubuntu 20.04 đã được setup bao gồm một sudo non-root user và tường lửa.
  • Thứ hai là Go đã được cài đặt trên máy (Hướng dẫn chi tiết tại đây).

Nếu đã có đủ hai điều kiện trước, các bạn đã sẵn sàng để theo dõi bài hướng dẫn này.

Các bước thực hiện

Bây giờ, các bạn sẽ đến với bước thực hiện đầu tiên là tạo một chương trình Go đơn giản.

Bước 1: Tạo một chương trình Go đơn giản

Ở bước này, như lẽ tự nhiên của bất kì một ứng dụng nào khi bắt đầu, các bạn sẽ tạo một chương trình huyền thoại có tên là Hello, World!.

Đầu tiên, tạo một thư mục mới cho project Go, nơi mà Go sẽ build các file của mình. Theo ví dụ trong bài này sẽ là thư mục hello:

mkdir hello

Sau đó, di chuyển vào thư mục vừa tạo:

cd hello

Khi import các packages, các bạn cần phải quản lí các dependencies thông qua các module. Để thực hiện, ta cần tạo một file go.mod với câu lệnh go mod init như sau:

go mod init hello

Tiếp theo, tạo file Hello, World! của Go bằng một text editor tùy ý, ở đây sử dụng nano:

nano hello.go

Thêm các dòng lệnh sau ở bên trong file hello.go:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Lưu và đóng file bằng CTRL+X, sau đó YENTER sau khi hoàn thành.

Kiểm tra lại code của mình có print dòng chữ Hello, World! hay không bằng lệnh:

go run .
Output
Hello, World!

Lệnh go run sẽ compile và chạy Go package từ danh sách trong source files của .go trong thư mục hello mà ta vừa tạo và đường dẫn mà ta imported. Nhưng các bạn cũng có thể sử dụng go build để tạo một executable file để giúp tiết kiệm thời gian.

Bước 2: Tạo một file Executable

Lệnh go run đã chạy code trong chương trình “Hello, World!”, nhưng điều các bạn muốn là build chương trình đó thành dạng binary (hay nhị phân) để có thể chạy ở bất kì nơi nào trên hệ thống, không phải chỉ là từ source của chương trình. Lệnh go build giúp build các executables.

go build hello

Lệnh trên sẽ không có bất kì output nào khi thao tác đã thực thi thành công. File executable sẽ được tạo ra trong thư mục hiện tại của các bạn, có cùng tên với thư mục chứa package. Với trường hợp của bài hướng dẫn này, file executable có tên là hello.

Nếu như các bạn đang ở trong thư mục package, thì có thể bỏ qua phần đường dẫn cho package và chỉ đơn giản là chạy go build.

Để chỉ định tên khác và vị trí khác cho file executable, ta thêm flag -o.

Bây giờ, các bạn sẽ thử tạo một file executable có tên là hello và đặt nó vào trong thư mục build nằm bên trong thư mục hiện tại đang làm việc:

go build -o build/hello hello

Lênh trên tạo một file executable và đồn thời tạo thư mục ./build nếu chưa có.

Các bạn đã có được một file executable cho chương trình hello của mình, tiếp theo sẽ tìm hiểu về cách để cài đặt các file executables.

Bước 3: Cài đặt Executable

Build một file executable, sẽ tạo ra file đó nằm bên trong thư mục mà ta đang làm việc hoặc theo chỉ định. Cài đặt một executable là quá trình tạo ra một file executable và lưu trữ file đó vào trong $GOPATH/bin. Lệnh go install có chức năng giống như go build nhưng khác là go install sẽ giúp đặt các file output vào đúng vị trí, ta không cần phải tự mình chỉ định.

Để cài đặt một executable, dùng lệnh go install theo sau là tên đường dẫn import của package. Ở đây, ta vẫn sử dụng chương “Hello, World!” để thử:

go install hello

Giống với go build, không có output nào hiện ra nếu lệnh chạy thành công. Và cũng tương tự, file executable được tạo với tên cùng với tên thư mục chứa package. Nhưng lần này, file executable được lưu bên trong $GOPATH/bin. Nếu $GOPATH/bin là một phần của biến môi trường $PATH trên máy các bạn, file executable sẽ có thể được thực thi từ bất kì nơi nào trên hệ điều hành.

Để xác nhận điều này dùng lệnh which:

which hello

Các bạn sẽ thấy output tương tự như sau:

Output of which
/home/sammy/go/bin/hello

Đến đây, các bạn đã hiểu được cách go get, go buildgo install hoạt động, và chúng có liên quan như nào với nhau.

Tiếp theo các bạn sẽ tìm hiểu về một trong các tính năng phổ biến nhất của Go là tạo các file executables cho các nền tảng khác.

“Nếu bạn muốn chạy chương trình, triển khai ứng dụng của mình trên server ảo (VPS) tốc độ cao và ổn định, hãy xem xét dịch vụ thuê máy chủ ảo của Vietnix. Với nhiều gói dịch vụ VPS khác nhau như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS NVMe có giá khởi điểm chỉ 89.000 VND/Tháng, bạn có thể lựa chọn gói có cấu hình phù hợp với nhu cầu của mình.

Vietnix cũng cung cấp cho bạn một giao diện quản lý VPS đơn giản và dễ sử dụng để bạn có thể quản lý máy chủ của mình một cách dễ dàng.

Việc sử dụng VPS của Vietnix cũng có nhiều lợi ích, bao gồm tốc độ truy cập nhanh và khả năng mở rộng linh hoạt, dễ dàng truy cập và quản lý máy chủ từ xa, bảo mật dữ liệu,… Ngoài ra, Vietnix còn hỗ trợ khách hàng 24/7 với đội ngũ kỹ thuật giàu kinh nghiệm để giải quyết các vấn đề kỹ thuật khi sử dụng VPS một cách nhanh chóng và hiệu quả.

Bước 4: Xây dựng Executable cho các kiến trúc khác nhau

Lệnh go build sẽ giúp ta build một file executable cho nền tảng bất kì nào được Go hỗ trợ. Điều này giúp ta có thể test, release và distribute ứng dụng của mình mà không cần phải build các file executables trên những nền tảng các bạn mong muốn sử dụng.

Việc biên dịch đa nền tảng hoạt động được nhờ vào việc cài đặt các biến môi trường chỉ định môi trường hệ điều hành và kiến trúc mà ta muốn hỗ trợ. Các bạn sử dụng biến GOOS cho hệ điều hành mong muốn và GOARCH cho kiến trúc mong muốn.

Để build một file executable, lệnh như sau:

GOOS=target-OS GOARCH=target-architecture go build package-import-path

Theo lệnh, ta cần phải chỉ định hệ điều hành và kiến trúc trước khi chạy lệnh go build. Điều này để cho các biến môi trường đó chỉ được áp dụng cho câu lệnh hiện tại đang thực thi. Sau đó, sẽ được reset hoặc unset sau khi lệnh được thực thi xong.

Để kiểm tra các hệ điều hành nào và nền tảng nào đang hiện có, sẵn sàng cho việc build các file executables, ta dùng tool dist như sau:

go tool dist list

Tool này sẽ cung cấp một danh sách các hệ điều hành và kiến trúc được phân biệt nhau bởi dấu /:

Output
aix/ppc64
android/386
android/amd64
android/arm
android/arm64
darwin/amd64
darwin/arm64
dragonfly/amd64
freebsd/386
freebsd/amd64
freebsd/arm
freebsd/arm64
illumos/amd64
ios/amd64
ios/arm64
js/wasm
linux/386
linux/amd64
linux/arm
linux/arm64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/riscv64
linux/s390x
netbsd/386
netbsd/amd64
netbsd/arm
netbsd/arm64
openbsd/386
openbsd/amd64
openbsd/arm
openbsd/arm64
openbsd/mips64
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
windows/386
windows/amd64
windows/arm

Cảnh báo: Việc biên dịch đa nền tảng các executables cho hệ điều hành Android cần có Android NDK và một vài setup cần thiết khác, điều mà sẽ không được đề cập đến trong bài hướng dẫn này.

Dựa vào danh sách được cung cấp, ta sẽ build chương trình hello cho Windows-64 bit như sau:

GOOS=windows GOARCH=amd64 go build hello

Ở đây cũng tương tự, nếu lệnh chạy thành công sẽ không có thông báo output. File executable sau khi build thành công sẽ được tạo ra ở trong thư mục làm việc hiện tại, và có tên của package. Tuy nhiên, bởi vì các bạn sẽ build cho Windows, nên tên của file executable sẽ có thêm suffix .exe.

Dùng lệnh ls sau, để kiểm tra file hello.exe có nằm trong thư mục hiện tại của mình không:

ls hello.exe

Nếu đã build thành công, các bạn sẽ thấy hello.exe được hiển thị ra như sau:

Output
hello.exe

Chú ý: Các bạn có thể dùng flag -o để đặt tên lại cho file executable hoặc đặt file vào một nơi khác. Tuy nhiên, khi build cho Windows hãy nhớ thêm phần suffix .exe cho tên file nếu các bạn quyết định đổi tên của file executable.

Tiếp theo, các bạn sẽ tiến hành scripting quá trình trên để làm thuận tiện hơn cho quá trình release phần mềm của mình trên nhiều nền tảng hay môi trường khác nhau.

Bước 5: Tạo script tự động hóa biên dịch đa nền tảng (Cross-Compilation)

Quá trình tạo ra các file executables cho riêng mỗi nền tảng khác nhau sẽ trở nên khá khó khăn nếu ta thực hiện theo những gì bước 4 đã hướng dẫn. Tuy nhiên, ta có thể tạo một script để tự động hóa công việc này, khiến cho mọi thứ trở nên dễ dàng hơn.

Đoạn script sẽ nhận đường dẫn import của package để làm tham số, sau đó sẽ tuần tự duyệt qua danh sách cặp các hệ điều hành và nền tảng đã được định nghĩa sẵn để tạo ra file executable cho mỗi cặp và đặt các file đó vào thư mục hiện tại.

Mỗi file executable sẽ được đặt tên theo tên của package, theo sau là nền tảng và kiến trúc tương ứng dưới dạng package-OS-architecture. Đoạn script này sẽ là một script tổng quát và có thể được dùng cho bất kì project nào mà ta mong muốn.

Bên trong thư mục của project, ta tạo một file mới có tên là go-executable-build.bash bằng text editor tùy ý, bài hướng dẫn này sử dụng nano:

nano go-executable-build.bash

Các bạn sẽ bắt đầu đoạn script với dòng shebang. Dòng này lựa chọn trình thông dịch nào sẽ phân tích đoạn script khi được thực thi. Thêm dòng lệnh sau vào file vừa tạo để chỉ định bash sẽ thực thi đoạn script:

!/usr/bin/env bash

Các bạn sẽ lấy đường dẫn import của package như là tham số dòng lệnh. Để thực hiện, ta sử dụng biến $n – với n là một số không âm. Biến $0 giữ tên của script được thực thi, và từ $1 trở lên sẽ giữ các tham số khác do người dùng tự cung cấp.

Thêm dòng lệnh sau vào script để lấy tham số đầu tiên trên command line và lưu lại dưới biến có tên là package:

…
package=$1

Tiếp theo, ta cần đảm bảo rằng tham số đã được cung cấp. Nếu không có giá trị nào được cung cấp, sẽ exit – ngừng thực thi script và gửi ra một message để thông báo:

...

if [[ -z "$package" ]]; then
  echo "usage: $0 <package-name>"
  exit 1
fi

Đoạn lệnh if như trên, kiểm tra giá trị của biến $package. Nếu biến không được set, ta sẽ echo để thông báo về cách sử dụng và chấm dứt hay ngưng đoạn script bằng lệnh exit. exit cần có một tham số cho giá trị trở về – giá bằng 0 có nghĩa là script đã thực thi thành công và khác 0 cho thực thi không thành công.

Các bạn sử dụng 1 ở đây để chỉ định rằng đoạn script đã thực thi không thành công.

Chú ý: nếu các bạn muốn đoạn script được thực thi với một package được định nghĩa sẵn thì hãy thay đổi biến package để trỏ vào đường dẫn import, như ví dụ dưới đây:

...
package="github.com/user/hello"

Tiếp theo, các bạn cần trích xuất lấy tên của package từ đường dẫn. Đường dẫn import của package được phân chia bởi dấu / với tên của package nằm ở vị trí cuối cùng. Đầu tiên ta sẽ tách đường dẫn đó ra thành một mảng bởi dấu /:

package_split=(${package//\// })

Tên của package sẽ là phần tử cuối cùng của mảng $package_split. Với bash, ta có thẻ sử dụng index với số âm để truy cập một phần tử của mạng từ cuối lên thay vì là từ đầu xuống (tương tự như cách đánh index trong Python).

Thêm dòng lệnh sau để lấy tên của package từ mảng vừa tạo và lưu lại vào trong một biến tên là package_name:

…
package_name=${package_split[-1]}

Sau đó, ta sẽ cần phải chỉ định những hệ điều hành nào và những kiến trúc nào mình muốn build các file executables cho. Trong bài hướng dẫn này, các bạn sẽ build các file executables cho Windows 64-bit, Windows 32-bit và 64-bit macOS. Các bạn sẽ đặt các thông tin trên vào trong một mảng có định dạng là OS/Platform, để sau đó sẽ có thể tách từng cặp thành các biến GOOSGOARCH bằng cách thức tương tự như việc tách lấy tên của package phía trên.

Thêm các nền tảng sau vào trong script:

...
platforms=("windows/amd64" "windows/386" "darwin/amd64")

Tiếp theo, các bạn cần duyệt qua mảng này để tách từng phần tử trong mảng ra thành các biến môi trường GOOSGOARCH, và sử dụng chúng để build các file executables.

Sử dụng vòng lặp for ta có như sau:

...
for platform in "${platforms[@]}"
do
    ...
done

Biến platform đại diện cho từng phần tử trong mảng platforms qua từng lần duyệt. Ta cần phải tách platform thành hai biến là GOOSGOARCH.

Thêm những dòng sau vào vòng lặp:

for platform in "${platforms[@]}"
do
    platform_split=(${platform//\// })
    GOOS=${platform_split[0]}
    GOARCH=${platform_split[1]}
    
done

Tiếp theo, ta cần tạo ra tên của file executable bằng cách kết hợp tên của package với tên của hệ điều hành và kiến trúc tương ứng. Và nếu là build cho Windows ta cần phải thêm suffix là .exe cho tên file. Tiếp tục thêm những dòng lệnh sau vào vòng lặp:

for platform in "${platforms[@]}"
do
    platform_split=(${platform//\// })
    GOOS=${platform_split[0]}
    GOARCH=${platform_split[1]}
    
    output_name=$package_name'-'$GOOS'-'$GOARCH

    if [ $GOOS = "windows" ]; then
        output_name+='.exe'
    fi
done

Với các biến trên, giờ ta có thể sử dụng go build để tạo file thực thi. Thêm dòng lệnh sau vào vòng lặp, ngay phía trên từ khóa done:

...
    if [ $GOOS = "windows" ]; then
        output_name+='.exe'
    fi
    
    env GOOS=$GOOS GOARCH=$GOARCH go build -o $output_name $package

done

Cuối cùng, ta nên kiểm tra lại việc có lỗi gì xảy ra trong quá trình build hay không. Ví dụ, ta có thể gặp phải lỗi nếu ta đang build cho một package không có source. Các bạn có thể kiểm tra mã trả về từ lệnh go build có phải là một giá trị khác 0 hay không.

Biến $? chứa mã trả về từ lệnh được thực thi trước đó. Nếu go build trả về mã khác 0, điều đó nghĩa là đã có vấn đề xảy ra và ta sẽ ngừng đoạn script lại ngay tại đó. Thêm những dòng lệnh sau vào vòng lặp, ngay bên dưới lệnh thực thi go build và phía trên từ khóa done:

...

    env GOOS=$GOOS GOARCH=$GOARCH go build -o $output_name $package

    if [ $? -ne 0 ]; then
           echo 'An error has occurred! Aborting the script execution...'
        exit 1
    fi

Đến đây, các bạn đã hoàn thành đoạn script sẽ giúp build các file executables trên nhiều nền tảng cho package Go. Dưới đây là bản đầy đủ của đoạn script.

#!/usr/bin/env bash

package=$1
if [[ -z "$package" ]]; then
  echo "usage: $0 <package-name>"
  exit 1
fi
package_split=(${package//\// })
package_name=${package_split[-1]}
    
platforms=("windows/amd64" "windows/386" "darwin/amd64")

for platform in "${platforms[@]}"
do
    platform_split=(${platform//\// })
    GOOS=${platform_split[0]}
    GOARCH=${platform_split[1]}
    output_name=$package_name'-'$GOOS'-'$GOARCH
    if [ $GOOS = "windows" ]; then
        output_name+='.exe'
    fi    

    env GOOS=$GOOS GOARCH=$GOARCH go build -o $output_name $package
    if [ $? -ne 0 ]; then
           echo 'An error has occurred! Aborting the script execution...'
        exit 1
    fi
done

Hãy kiểm tra để xác nhận script của các bạn giống với đoạn script trên. Sau đó lưu và thoát khỏi editor.

Trước khi sử dụng, ta cần phải cấp quyền khả thực thi cho file script của mình bằng lệnh chmod:

chmod +x go-executable-build.bash

Cuối cùng, ta tiến hành build cho chương trình hello của mình:

./go-executable-build.bash hello

Nếu thực thi thành công, các bạn sẽ nhận được ba file executables trong thư mục của mình. Một lần nữa, không có output thông báo nghĩa là đã thực thi thành công. Hãy sử dụng lệnh ls để kiểm tra.

ls hello*

Các bạn sẽ thấy ba phiên bản của file như dưới đây:

Example ls output
hello-darwin-amd64 hello-windows-386.exe hello-windows-amd64.exe

Bạn có thể thay đổi, thêm hoặc bớt các nền tảng mong muốn, các bạn chỉ cần chỉnh sửa biến platforms bên trong script.

Để chắc chắn rằng ứng dụng của các bạn đã hoạt động tốt, hãy sử dụng Travis-CI và AppVeyor để kiểm thử cho Windows.

Vietnix là lựa chọn đáng tin cậy nếu bạn cần VPS để triển khai theo bài viết. Với 10 năm kinh nghiệm và hơn 50.000 khách hàng, Vietnix được xem là nhà cung cấp VPS uy tín hàng đầu tại Việt Nam. Ngoài ra, Vietnix còn được nhiều người lựa chọn sử dụng dịch vụ phải những ưu thế sau:

Liên hệ với Vietnix để biết thêm chi tiết và nhận ưu đãi hấp dẫn ngay hôm nay.

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093 – 07 088 44444
  • Email: sales@vietnix.com.vn

Lời kết

Vietnix đã giới thiệu cho các bạn về cách sử dụng Go để lấy các package từ Version Control System, cũng như là build và thực thi cross-compile trên các nền tảng khác nhau. Cùng với đó là tự động hóa việc Cross-Compilation bằng một script tự tạo. Nếu có gì thắc mắc về bài viết cách xây dựng Go trên Ubuntu 20.04, hãy để lại bình luận bên dưới để được Vietnix giải đáp ngay lập tức.

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (171 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Chỉ số tăng trưởng

Điểm Desktop

100 (+39)

Điểm Mobile

100 (+67)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

99 (+28)

Điểm Mobile

100 (+50)

Core Web Vitals

Passed

Lĩnh vực

SEO

Chỉ số tăng trưởng

Điểm Desktop

99 (+26)

Điểm Mobile

98 (+59)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

100 (+8)

Điểm Mobile

98 (+35)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Chỉ số tăng trưởng

Điểm Desktop

100 (+61)

Điểm Mobile

100 (+61)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Võ Thiên Tòng

25 Tháng 2 lúc 21:09

·

Mình muốn gửi lời cảm ơn chân thành đến Team Vietnix, anh Hưng Nguyễn, anh Vietnix Trung, em Quốc Huy đã hỗ trợ tối ưu Page Speed Insight (PSI) cho website vanvoiminhhoa.vn của mình.
Biết đến anh Hưng đã lâu nhưng chưa có duyên sử dụng dịch vụ bên anh. Tình cờ thấy được bài Post của anh về việc hỗ trợ tối ưu PSI miễn phí chỉ với vài Slot, thấy AE cmt khá nhiều nên cũng không nghĩ tới lượt mình. Hôm sau đánh liều inbox 1 phen xem sao thì may mắn được đưa vào danh sách. Vài ngày sau được Team Vietnix liên hệ và hỗ trợ.
Kết quả đạt được:
• Điểm xanh lè xanh lét
• Tốc độ tải trang nhanh hơn hẳn
• Các chỉ số cũng được cải thiện đáng kể
• Và mình tin rằng với việc PSI được cải thiện cũng thúc đẩy những thứ khác đi lên theo!
Mình thực sự hài lòng với dịch vụ của Vietnix và muốn giới thiệu đến tất cả mọi người:
• Dịch vụ Wordpress Hosting: Tốc độ nhanh, ổn định, bảo mật cao, hỗ trợ kỹ thuật 24/7. (https://vietnix.vn/wordpress-hosting/)
• Dịch vụ Business Hosting: Dung lượng lớn, phù hợp cho website có lượng truy cập cao, tích hợp nhiều tính năng cao cấp. (https://vietnix.vn/business-hosting/)
Đặc biệt, Vietnix đang có chương trình ưu đãi:
• Giảm giá 20% trọn đời khi nhập code THIENTONG_PAGESPEED tại trang thanh toán (Chu kỳ 12 tháng trở lên)
• Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website
Cám ơn Vietnix một lần nữa!
#Vietnix #Vanvoiminhhoa #Pagespeedinsight
Trước khi tối ưu
Sau khi tối ưu
Thiện Nguyễn - CEO SEO Dạo

5 Tháng 3 lúc 16:21

·

CORE WEB VITAL YẾU TỐ XẾP HẠNG TÌM KIẾM SEO
Core Web Vitals là một tập hợp các chỉ số đo lường hiệu suất của trang web từ góc độ người dùng, được Google sử dụng để đánh giá trải nghiệm người dùng trên các trang web. Các chỉ số chính bao gồm:
– Largest contentful paint (LCP): Tốc độ render của page. Mục tiêu là dưới 2,5 giây.
– First input delay (FID): Tốc độ phản hồi của website với tương tác của người dùng. Mục tiêu là dưới 100ms.
– Cumulative Layout Shift (CLS): Độ ổn định của bố cục trang. Mục tiêu là dưới 0.1.
Tất cả các chỉ số này đo lường các khía cạnh quan trọng của trải nghiệm người dùng trên trang web. Google đã công bố rằng từ tháng 5 năm 2021, các Core Web Vitals sẽ được sử dụng làm một trong các yếu tố đánh giá trong việc xếp hạng trang web trên kết quả tìm kiếm. Do đó, hiểu và cải thiện các Core Web Vitals là rất quan trọng đối với SEO.
Tóm lại, Core Web Vitals không chỉ giúp cải thiện hiệu suất và xếp hạng trang web trên công cụ tìm kiếm, mà còn cải thiện trải nghiệm của người dùng khi họ truy cập và tương tác với trang website.
P/s: mình đang có gói hỗ trợ đặc biệt cho anh em tối ưu tốc độ bên VIETNIX:
– Giảm 20% lifetime dịch vụ Hosting Business và Hosting Wordpress chu kỳ 12 tháng trở lên.
– Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website.
Anh em có nhu cầu đăng ký qua bạn Vietnix Trung này nhé và nhập mã SEODAO_PAGESPEED để được ưu đãi nhé.😁
Trước khi tối ưu
Sau khi tối ưu SEO Dạo
Icharm review

5 Tháng 3 lúc 15:43

·

[Mình vừa được hỗ trợ tối ưu page speed website]
Trước khi được tối ưu, web của mình điểm rất thấp, đặc biệt là mobile chỉ có 39. Cơ duyên thế nào lúc lướt face lại va phải chương trình tối ưu pagespeed bên Vietnix.
Sau khi được Trần Hoàng Phúc và team Vietnix hỗ trợ nhiệt tình, điểm web vọt lên 98 99 (như hình bên dưới). Dùng thử web thì thấy quá là mượt, 10 điểm cho team Vietnix.
Nói thật thì mình thật sự ấn tượng về sự nhiệt huyết, tận tâm và rất chuyên nghiệp bên Vietnix.
Anh em có nhu cầu về hosting hay có vấn đề về website như:
1. Web load chậm
2. Khách rời web vì đợi tải nội dung, hình ảnh lâu
3. Hay tất tần tật mọi thứ về website
THÌ LIÊN HỆ NGAY VIETNIX NHÉ!
Và đừng quên dùng pass “ICHARM_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting. Quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
Trước khi tối ưu
Sau khi tối ưu
Hoàng Nguyễn

29 Tháng 2 lúc 17:04

·

Xin chào mọi người! Vừa rồi mình có sử dụng dịch vụ tối ưu website, tăng tốc độ tải trang pagespeed của Vietnix kết quả trên cả tuyệt vời nên mình viết bài này để chia sẻ thông tin với các bạn.
Lý do mình chọn dịch vụ tối ưu tốc độ website của Vietnix:
✅ Đội ngũ chuyên gia giàu kinh nghiệm: Đã tối ưu thành công cho hàng nghìn website trong nhiều lĩnh vực khác nhau. Các bạn nhân viên rất thân thiện, nhiệt tình và chủ động trong quá trình làm việc để cập nhật tiến độ.
✅ Quy trình chuyên nghiệp:
– Kiểm tra và phân tích: Vietnix sử dụng các công cụ tiên tiến để kiểm tra và phân tích tốc độ website của bạn.
– Xác định nguyên nhân: Vietnix xác định nguyên nhân khiến website tải chậm và đưa ra giải pháp tối ưu phù hợp.
– Tối ưu hóa website: Vietnix áp dụng các kỹ thuật tối ưu tiên tiến nhất để tăng tốc độ tải trang.
– Báo cáo kết quả: Vietnix cung cấp báo cáo chi tiết về kết quả tối ưu hóa website.
Công nghệ tiên tiến: Vietnix sử dụng các công nghệ tối ưu mới nhất như LiteSpeed, LSCache, Memcached, Redis, v.v.
✅ Cam kết kết quả: Vietnix cam kết tăng tốc độ website của bạn lên tối thiểu 90%.
✅ Giá cả cạnh tranh: Vietnix cung cấp dịch vụ tối ưu tốc độ website với mức giá cạnh tranh nhất trên thị trường.
📣 Để đăng ký sử dụng dịch vụ tối ưu tốc độ website và các dịch vụ khác như hosting, vps, domain… các bạn có thể đăng ký tại https://portal.vietnix.vn/aff.php?aff=57 hoặc Inbox cho sếp Vietnix Trung nhé.
Các bạn có thể kiểm tra tốc độ trang của mình https://lasan.edu.vn hoặc một vài trang khác đã sử dụng dịch vụ của Vietnix như sau:
https://pagespeed.web.dev/…/https…/v8beqewyt2…
https://pagespeed.web.dev/…/https…/etiohjvtl4…
https://pagespeed.web.dev/…/https…/yczuqpw6d1…
https://pagespeed.web.dev/…/https…/xf9y65kuzk…
https://pagespeed.web.dev/…/https…/fdrsms15en…
https://pagespeed.web.dev/…/https…/s7p9cgzeri…
Trước khi tối ưu
Sau khi tối ưu
Dũng cá xinh

30 Tháng 1 lúc 19:09

·

[Đỉnh]
Em có dùng hosting, vps, cloud vps, cloud server, dedicated server của rất nhiều bên từ trong nước đến nước ngoài để hosting khoảng 2,000+ domain. Mỗi bên đều có ưu nhược khác nhau, nhưng có 1 số bên đặc biệt “bá đạo”, trong đó có: Vietnix!!!!

Lần đầu tiên em được cả CEO Hưng Nguyễn lẫn Master về dev Vietnix Trung của 1 đơn vị hàng đầu liên quan đến Hosting, Server support từ A – Z (từ Zalo, Tele, đến FB và cả Phone)

Em có khá nhiều web dạng Big Data (bài, ảnh, database, data) lên đến hàng trăm Gb. Càng to thì nó càng có nhiều vấn đề về phần phản hồi ban đầu (nhược điểm cố hữu của php wordpress so với nativejs, reactjs, html, headless,…), và anh em Vietnix có nhã ý hỗ trợ xử lý phần Speed Insight này.

Kết quả thực sự kinh ngạc, từ cách trao đổi đến xử lý vấn đề, cut off những cái cần cut off, xử lý rất sâu vấn đề và gợi ý rất nhiều ý tưởng optimize hệ thống!!!! Thực sự quá hài lòng về kết quả cũng như cách tương tác của các đầu tầu bên Vietnix ^^!!!

Nhân cơ duyên được kết nối với những cao thủ của Vietnix, em xin chia sẻ và lan tỏa để nhiều anh em có cơ hội được sử dụng những dịch vụ tốt nhất với giá vô cùng hợp lý!!!!

1 – Với anh em chưa có hosting, em đặc biệt recommend sử dụng hosting bên Vietnix:
– Sử dụng mã DUNGCAXINH_PAGESPEED sẽ được giảm 20% trọn đời (lifetime luôn)
– Áp dụng các gói Hosting Business, Hosting wordpress và reg 1 năm trở lên
– Anh em chưa biết cách reg thì còm men hoặc ib để em hướng dẫn hoặc nhờ các bạn bên Vietnix support từ A – Z

2 – Anh em có hosting rồi và muốn build blog hoặc web = wordpress mà chưa có giao diện thì nhân tiện em đang có tài khoản Premium bên Envato, em sẽ tặng bất kỳ giao diện nào có trên Envato Themes (Link em để dưới còm men) ạ. Cả nhà còm hoặc ib em Themes mà mọi người “chim ưng”, em sẽ cho anh em tải về, up drive và gửi ạ!!! (Chương trình này kéo dài đến ngày 29 tết âm lịch ạ)

3 – BEST NHẤT luôn!!!! Anh em nào mua hosting dùng mã DUNGCAXINH_PAGESPEED sẽ được tối ưu 100 điểm tốc độ cho 1 web (đây là ưu đãi riêng của CEO Hưng Nguyễn dành cho bạn bè của #dungcaxinh ^^) (Giá trị nhất là cái vụ số 3 này anh chị em nhé ^^), cơ hội vàng để move về đơn vị hosting uy tín là đây ^^!!!!

Một lần nữa xin chân thành cám ơn 2 đồng chí em: Hưng Nguyễn và Vietnix Trung đã giải được một bài toán khó cho các trang WP Big data mà anh loay hoay bao lâu nay chưa tìm ra đáp án!!! Chúc Vietnix ngày càng phát triển và có một năm 2024 đại đại thắng nhé ^^ !!!!!
#SEO #Vietnix #dungcaxinh

Trước khi tối ưu
Sau khi tối ưu
Hiếu AI

2 Tháng 2 lúc 21:06

·

UY TÍN – TẬN TÂM – TỐC ĐỘ

3 từ trên là vẫn chưa đủ để nói về quy trình làm việc cực chuyên nghiệp của team Vietnix.Chuyện là mình có con website chính đang có lượt truy cập organic hàng ngày cũng tương đối (hình 1)

Vấn đề là, con site này đang nằm trên hosting dùng chung nên tốc độ load chưa nhanh, tốc độ load chưa nhanh thì trải nghiệm visitor chưa tốt, trải nghiệm visitor chưa tốt thì tỷ lệ chuyển đổi ra đơn hàng kiểu gì thì kiểu cũng sẽ bị ảnh hưởng.

Biết rõ là đang mất tiền nhưng không biết xử lý như lào, nghĩ mà cay.

Đang loay hoay thì vận may nó tới, hôm qua đang lướt phở bò thấy a Nguyễn Việt Dũng đăng bài, rảnh nên thả cái comment hóng hớt, ai ngờ ngoằng phát thấy ông Dũng tạo nhóm với Vietnix Trung luôn.

Ae Vietnix thì siêu tốc độ, lập tức lấy thông tin vào việc, không hỏi han lằng nhằng, không kỳ kèo chốt đơn dù lúc đấy cũng đang đêm muộn.
Sáng hôm sau dậy vẫn còn đang lơ ngơ mở điện thoại check tin nhắn thì đã thấy ae Vietnix báo xong việc, trong khi mình vẫn chưa biết có chuyện gì xảy ra @@.

Được cái bấm thử website thì thấy load siêu nhanh, chưa tới một giây là thông tin các thứ hiện hết. Quá phê, thả con ảnh trước sau (hình 2,3) để ace tiện đối chiếu nhé. Thế này thì mình gửi gắm nốt 15 em website còn lại cho team Vietnix thôi chứ không cần nghĩ ngợi gì nữa. 10/10.

Nên là:

  1. Anh chị em muốn có một con website tốc độ load nhanh như tốc độ trở mặt của nyc – Dùng ngay dịch vụ hosting của Vietnix
  2. Anh chị em có website rồi muốn tìm bên hosting uy tín, chuyên nghiệp hỗ trợ không quản ngày đêm – Liên hệ ngay Vietnix Trung
  3. Anh chị em quan tâm đến trải nghiệm khách hàng, từ những cái nhỏ nhất như tăng tốc độ website – Better call Vietnix Trung

Và đừng quên dùng pass “HIEUAI_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting, quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
#SEO #Vietnix #hieuai

Website
Trước khi tối ưu
Sau khi tối ưu

Chỉ số tăng trưởng

Điểm Desktop

100 (+43)

Điểm Mobile

100 (+74)

Core Web Vitals

Passed

Lĩnh vực

AI