Khởi tạo và triển khai ứng dụng Flask bằng Docker trên Ubuntu 20.04

Lượt xem
Home

Với ứng dụng Docker, bạn có thể dễ dàng mở rộng quy mô, bảo trì và vận hành ứng dụng của mình trên các nền tảng khác nhau. Tuy nhiên, khi mới bắt đầu làm quen với Docker có thể sẽ không tránh khỏi những khó khăn trong việc quản lí và triển khai ứng dụng của mình. Trong bài viết hôm nay, Vietnix sẽ hướng dẫn bạn khởi tạo và chạy ứng dụng Flask bằng Docker trên Ubuntu 20.04.

Giới thiệu về Flask và Docker

Docker là một ứng dụng mã nguồn mở giúp các bạn khởi tạo, quản lý, deploy và replicate ứng dụng của mình bằng cách sử dụng các containers. Bạn có thể hiểu containers như là một package chứa các dependencies mà ứng dụng cần để có thể chạy được. Điều này có nghĩa là khi ứng dụng đã được deploy bằng Docker thì ứng dụng sẽ chạy bên trong môi trường của chính riêng ứng dụng đó.

Giới thiệu về Flask và Docker
Giới thiệu về Flask và Docker

Còn Flask là một framework dành để phát triển web sử dụng ngôn ngữ Python. Flask còn được gọi là một micro-framework là vì Flask không cần có các tools hay các plug-in nào khác để có thể chạy được. Ngoài ra, Flask rất nhẹ, linh động và được kiến trúc khá tốt, cho nên thường được sử dụng để làm các ứng dụng web có quy mô nhỏ.

Việc bạn deploy Flask bằng Docker sẽ giúp replicate ứng dụng của mình lên các server khác nhau một cách dễ dàng hơn và không yêu cầu cấu hình phức tạp.

Trong bài viết này, Vietnix sẽ hướng dẫn bạn tạo một ứng dụng Flask, deploy bằng Docker và cách cập nhật cho ứng dụng sau khi deploy.

Yêu cầu tiên quyết để khởi tạo và chạy ứng dụng Flask bằng Docker trên Ubuntu 20.04

Để theo dõi bài hướng dẫn này, các bạn cần thỏa các yêu cầu sau:

  • Máy chủ Ubuntu phiên bản 20.04 có tài khoản người dùng non-root, được cấp quyền sudo.
  • Docker và Nginx đã được cài đặt trên máy chủ đó.
Nginx
Nginx

Các bước tiến hành

Bước 1: Khởi tạo ứng dụng Flask

Đầu tiên, ban cần phải tạo cấu trúc thư mục cho ứng dụng của mình. Ở đây sẽ tạo một thư mục có tên là TestApp ở trong /var/www. Tùy theo nhu cầu, bạn có thể tùy chỉnh và đặt tên theo ý muốn.

sudo mkdir /var/www/TestApp

Sau khi đã tạo thư mục, hãy di chuyển vào bên TestApp bằng lệnh sau:

cd /var/www/TestApp

Tiếp theo, bạn hãy tạo một cấu trúc thư mục cơ bản dành cho Flask như sau:

sudo mkdir -p app/static app/templates

Cờ (flag) -p ở đây cho biết mkdir sẽ tạo ra thư mục có tên được chỉ định và cả thư mục cha tương ứng nếu chưa tồn tại. Ở lệnh trên, mkdir sẽ tạo thư mục cha là app trong quá trình tạo ra hai thư mục con là statictemplates.

Thư mục app sẽ chứa tất cả các files của ứng dụng Flask như viewsblueprints. Views là code mà bạn viết để phản hồi lại cho các requests từ client đến ứng dụng của mình. Còn Blueprints sẽ giúp tạo ra các thành phần và hỗ trợ các phương hướng thiết kế phổ biến trong ứng dụng.

Ở thư mục static, bạn sẽ lưu các files như images, CSSJavaScript. Còn đối với các files HTML thì bạn sẽ đặt ở bên trong thư mục templates.

Sau khi đã hoàn thành việc cấu trúc thư mục cho ứng dụng, bạn tạo các files để khởi chạy ứng dụng Flask.

Đầu tiên, bạn hãy tạo file __init__.py bên trong thư mục app bằng một Text Editor bất kì, trường hợp này là nano. File này sẽ giúp trình thông dịch của Python xem thư mục app như là một package để có thể import và export.

Hãy chạy lệnh sau để tạo file:

sudo nano app/__init__.py

Việc xem file __init__.py như là một package sẽ giúp bạn gôm nhóm các modules lại thành các namespaces, điều này giúp cho code sẽ được tách nhỏ ra thành các thành phần độc lập ít bị phụ thuộc vào nhau và phụ vụ cho một chức năng cụ thể.

Tiếp theo, để khởi chạy Flask, bạn cần phải thêm dòng code sau vào file trên và import các logic từ file views.py (sẽ được tạo sau khi hoàn thành bước này) vào.

from flask import Flask
app = Flask(__name__)
from app import views

Bạn hãy đóng và lưu lại file sau khi thêm các dòng trên. Với nano, bạn hãy nhấn CTRL+X, sau đó nhấn Y và nhấn ENTER.

Tiếp theo, bạn sẽ tiến hành tạo file views.py bên trong thư mục app. File này sẽ chứa hầu hết các logic cho ứng dụng của bạn.

sudo nano app/views.py

Tiếp theo, hãy thêm dòng code sau vào views.py. Code này sẽ giúp trả về một chuỗi Hello World! ngay khi người dùng truy cập vào trang web.

from app import app

@app.route('/')
def home():
   return "Hello World!"

Dòng @app.route('/') được gọi là function decorator trong Python. Decorators thường được sử dụng trong Flask để điều chỉnh các hàm đi theo ngay phía sau đó. Ở đoạn code trên, decorator này sẽ cho Flask biết được đường dẫn URL nào sẽ kích hoạt hay gọi hàm home(). Và sau đó, dòng chữ Hello World! sẽ được hiển thị trên trình duyệt của người dùng.

Sau khi đã có file views.py, bạn hãy tạo tiếp một file là uwsgi.ini – file này chứa các cấu hình uWSGI cho ứng dụng của bạn. uWSGI là một lựa chọn triển khai ứng dụng cho Nginx, vừa là giao thức vừa là ứng dụng của server – có thể cung cấp hay phục vụ cho các giao thức như uWSGI, FastCCI và HTTP.

Hãy tạo file bằng lệnh sau:

sudo nano uwsgi.ini

Tiếp theo, bạn hãy thêm các nội dung sau vào bên trong file để cấu hình cho máy chủ uWSGI:

[uwsgi]
module = main
callable = app
master = true

Code này xác định rằng module main.py là điểm đầu vào của ứng dụng Flask khi khởi chạy. Tùy chọn callable cho uWSGI biết sẽ sử dụng app instance được export từ main. Còn tùy chọn master sẽ cho phép ứng dụng của bạn tiếp tục hoạt động, có rất ít thời gian chết (downtime) ngay cả khi tải lại toàn bộ ứng dụng.

Tiếp theo, bạn hãy tạo file main.py, như đã đề cập ở trên đầy chính là điểm đầu vào của ứng dụng. Điểm đầu vào sẽ giúp uWSGI biết cách để tương tác với ứng dụng của bạn.

sudo nano main.py

Tiếp theo, bạn hãy copy và paste đoạn code sau vào trong file. Code này sẽ import một Flask instantance có tên là app từ file __init__.py đã tạo ra trước đó.

from app import app

Cuối cùng là bạn hãy tạo requirements.txt file để chỉ định các dependencies mà pip (package manager) sẽ cài đặt vào trong Docker khi tiến hành deploy.

sudo nano requirements.txt

Bạn hãy thêm dòng sau vào file để chỉ định Flask là một dependencies:

Flask>=2.0.2

Dòng trên chỉ định cho phiên bản sẽ được cài đặt của Flask. Vào thời điểm của bài viết này, 2.0.2 là phiên bản mới nhất của Flask và chỉ định bên trong file là >=2.0.2 để đảm bảo rằng trong tương lai sẽ cài đặt các bản cập nhật mới nhất nếu có.

Tuy nhiên, vì đây chỉ là một ứng dụng thử nghiệm để thực hiện hướng dẫn nên sự thay đổi về phiên bản ở đây không đáng kể. Nếu bạn muốn an toàn hơn thì có thể chỉ định phiên bản như sau Flask>=2.0.2,<3.0 để giúp kiểm soát được phiên bản lớn nhất mà bạn muốn cài đặt. Để biết thêm chi tiết về các bản cài đặt, bạn có thể tham khảo các tài liệu trên web của Flask.

Sau khi đã hoàn tất, hãy đóng và lưu file lại. Việc setup cho Flask đến đây là hoàn tất, tiếp bạn sẽ tiến hành setup cho Docker.

Để khởi tạo và triển khai ứng dụng Flask bằng Docker, bạn cần một máy chủ VPS. Việc sử dụng VPS sẽ giúp cho bạn có thể cài đặt, quản lý và điều khiển ứng dụng một cách dễ dàng, thuận tiện.

Nếu bạn đang tìm kiếm một dịch vụ VPS tốc độ cao, thì Vietnix là một trong những lựa chọn đáng tin cậy. Vietnix hiện đang cung cấp nhiều gói dịch vụ VPS với đa dạng cấu hình, có giá chỉ từ 89.000 VND/Tháng. Bao gồm: VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe.

Các gói VPS tại Vietnix được đánh giá cao nhờ những ưu điểm sau:

  • Tặng theme & plugin WordPress trị giá đến 50.000.000 VND.
  • Sử dụng phần cứng mạnh mẽ, giúp VPS hoạt động ổn định.
  • Backup tự động 1 tuần/lần.
  • Hỗ trợ đa dạng hệ điều hành, trong đó có hệ điều hành Ubuntu.
  • Toàn quyền quản trị với giao diện dễ sử dụng.
  • Kích hoạt dịch vụ ngay lập tức sau khi đăng ký.

Liên hệ ngay với Vietnix để được tư vấn lựa chọn gói VPS phù hợp.

Bước 2: Thiết lập Docker

Trong bước này, bạn sẽ setup Docker deployment bằng hai file là Dockerfilestart.sh. Dockerfile là một file text chứa các lệnh được dùng để tập hợp lại các image. Còn start.sh là một file shell script chứa các lệnh để build các image và tạo một container từ Dockerfile.

Đầu tiên, bạn hãy tạo Dockerfile bằng lệnh sau:

sudo nano Dockerfile

Tiếp theo, bạn hãy thêm các lệnh sau vào Dockerfile – các lệnh này thành lập nên cách mà các image sẽ được build và thực hiện những yêu cầu cần thiết khác nếu có.

FROM tiangolo/uwsgi-nginx-flask:python3.8-alpine
RUN apk --update add bash nano
ENV STATIC_URL /static
ENV STATIC_PATH /var/www/app/static
COPY ./requirements.txt /var/www/requirements.txt
RUN pip install -r /var/www/requirements.txt

Trong bài hướng dẫn này, Docker image của bạn sẽ được build dựa trên một image sẵn có là tiangolo/uwsgi-nginx-flask (bạn có thể tìm thấy ở DockerHub). Đây có thể coi là lựa chọn tốt bởi vì image này hỗ trợ phạm vi lớn các phiên bản khác nhau của Python và cũng như các image OS.

Hai dòng đầu tiên trong lệnh chỉ định image parent mà bạn sẽ sử dụng để chạy ứng dụng của mình và cài đặt trình xử lí các lệnh bash và cài đặt nano text editor. Đồng thời, cũng cài đặt thêm git client dành cho việc tương tác với các Version Control Hosting như GitHub, GitLab hay Bitbucket. ENV STATIC_URL /static là một biến môi trường được chỉ định trong image này của Docker – biến này giúp xác định thư mục static là nơi chứa các tài nguyên tĩnh như các ảnh, file CSS và JavaScript.

Hai dòng cuối cùng của file sẽ copy file requirements.txt vào trong container để thực thi và phân tích thành dependencies cụ thể sẽ được cài đặt.

Bạn hãy đóng và lưu file sau khi hoàn tất.

Tiếp theo bạn sẽ cần tạo file start.sh để build Docker container của mình. Nhưng trước hết, bạn cần phải kiểm tra để đảm bảo rằng mình có một port trống để sử dụng. Bạn hãy nhập lệnh sau để kiểm tra:

sudo nc localhost 56733 < /dev/null; echo $?

Nếu output của lệnh là 1, thì port đang trống và có thể sử dụng được. Ngược lại, bạn cần phải chọn một cổng khác để kiểm tra và sử dụng trong file start.sh.

Nếu đã tìm được một port trống để sử dùng, bạn hãy tạo file start.sh bằng lệnh sau:

sudo nano start.sh

Như đã đề cập trước đó, start.sh là một shell script sẽ build các image từ Dockerfile và tạo cho bạn một container từ Docker image. Hãy thêm các dòng sau vào file để tiến hành cấu hình:

#!/bin/bash
app="docker.test"
docker build -t ${app} .
docker run -d -p 56733:80 \
  --name=${app} \
  -v $PWD:/app ${app}

Dòng đầu tiên được gọi là shebang – giúp chỉ định đây là một file bash và sẽ được thực thi như các lệnh khác trên command line. Dòng tiếp theo, chỉ định tên mà bạn muốn đặt cho image này và container, được lưu trong biến app. Ở dòng tiếp theo, sẽ cho Docker biết cần phải build một image từ Dockerfile nằm ở trong thư mục hiện tại. Như tên đã đặt trước đó, lệnh này sẽ tạo ra một image tên là docker.test.

Ba dòng cuối cùng sẽ tạo một container mới tên là docker.test và được trưng ra ở port 56733. Cuối cùng là sẽ tiến hành link thư mục hiện tại với thư mục /var/www của container.

Ở đây, bạn có thể sử dụng cờ (flag) -d để khởi động container ở chế độ daemon (tiến trình chạy nền). Song song đó, bạn cũng có thể gắn thêm cờ (flag) -p vào để bind một port trên server tới một port cụ thể nào đó trong Docker container. Trong ví dụ trên, bạn đang bind port 56733 tới port 80 trên Docker container. Còn cờ -v sẽ chỉ định vùng chứa (vùng dữ liệu lưu trên ổ cứng) để mở container, ở đây bạn đang mở toàn bộ ứng dụng trên thư mục /var/www trong Docker container.

Hãy lưu và đóng file sau khi bạn đã hoàn tất việc cấu hình.

Tiếp theo, bạn hãy thực thi start.sh để tạo Docker image và build ra một container từ image đó.

sudo bash start.sh

Khi đoạn script thực thi xong, bạn có thể dùng lệnh sau để xem các containers hiện đang hoạt động.

sudo docker ps

Bạn sẽ nhận được output tương tự như dưới đây:

Output
CONTAINER ID        IMAGE               COMMAND                       CREATED               STATUS                 PORTS                                              NAMES
58b05508f4dd        docker.test        "/entrypoint.sh /sta…"    12 seconds ago      Up 3 seconds       443/tcp, 0.0.0.0:56733->80/tcp      docker.test

Bạn sẽ thấy rằng, container docker.test hiện đang hoạt động, do đó bạn có thể truy cập đến địa chỉ IP cùng với port được chỉ định trên trình duyệt của mình để kiểm tra: http://ip-address:56733

Nếu mọi thứ được cấu hình thành công, bạn sẽ thấy dòng chữ Hello World! như dưới đây:

Dòng chữ Hello world
Dòng chữ Hello world

Trong bước này, bạn đã hoàn tất việc deploy ứng dụng Flask của mình bằng Docker. Tiếp theo, bạn sẽ tiến hành sử dụng templates để hiển thị ra nội dung cho trang web của mình.

Bước 3: Tạo các tệp Templates cho ứng dụng

Templates ở đây có nghĩa là cái file chứa các nội dung (tĩnh và động) sẽ được hiển thị ra trên trình duyệt của người dùng ví dụ như các file HTML, CSS và JavaScript. Trong bước này, bạn sẽ tạo một file HTML để làm trang homepage cho ứng dụng của mình.

Trước tiên, bạn hãy tạo file home.html bên trong thư mục app/templates như sau:

sudo nano app/templates/home.html

Sau khi mở file, bạn hãy thêm những dòng code sau vào, để giúp ứng dụng hiển thị một số nội dung như tiêu đề và vài đoạn text đơn giản:

<!doctype html>

<html lang="en-us">   
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title>Welcome home</title>
  </head>
  
  <body>
    <h1>Home Page</h1>
    <p>This is the home page of our application.</p>
  </body> 
</html>

Sau khi hoàn tất, bạn hãy đóng và lưu file lại.

Tiếp đến, bạn cần phải chỉnh sửa lại app/views.py một chút để giúp hiển thị ra nội dung mới vừa thêm trên:

sudo nano app/views.py

Sau khi mở file, bạn hãy thêm dòng lệnh sau vào đầu của file để import phương thức render_template của Flask. Phương thức sẽ giúp phân tích cú pháp trong file HTML để hiển thị nội dung ra trình duyệt.

from flask import render_template
...

Sau đó, bạn hãy xuống phía cuối file để thêm một route mới như đoạn code dưới đây vào ứng dụng để giúp render ra file templates. Đoạn code chỉ định bất cứ khi nào người dùng truy cập vào đường dẫn /template, nội dung của file home.html sẽ được sử dụng để hiển thị ra cho người dùng.

...

@app.route('/template')
def template():
    return render_template('home.html')

Bạn có thể kiểm tra lại bản hoàn thiện của file như ở dưới đây:

from flask import render_template
from app import app 

@app.route('/')
def home():
    return "Hello world!"

@app.route('/template')
def template():
    return render_template('home.html')

Hãy lưu và đóng file sau khi bạn đã hoàn tất việc chỉnh sửa.

Tuy nhiên, để apply những thay đổi ở trên cho ứng dụng của mình, bạn cần phải dừng và sau đó khởi động lại Docker containers bằng lệnh dưới đây:

sudo docker stop docker.test && sudo docker start docker.test

Sau khi hoàn tất việc restart lại Docker containers, bạn có thể truy cập đến http://your-ip-address:56733/template để kiểm tra. Nếu mọi thứ đã cập nhật thành công, bạn sẽ thấy nội dung trang web tương tự như hình dưới đây:

Home Page
Home Page

Đến đây, bạn đã thành công trong việc tạo một template cho trang web của mình. Ở bước kế tiếp cũng như là cuối cùng trong bài viết này, bạn sẽ tìm hiểu về cách để cập nhật ứng dụng của mình mà không cần phải restart lại Docker containers.

Bước 4: Cập nhật ứng dụng

Khi phát triển phần mềm, đôi khi bạn sẽ cần phải cập nhật lại phần mềm, ứng dụng của mình để mang đến trải nghiệm tốt hơn cho người dùng. Cho nên ở bước này, Vietnix hướng dẫn bạn cách cấu hình touch-reload để có thể cập nhật những thay đổi mà không cần phải restart lại Docker container.

Bên cạnh đó, trong Python cũng có một hệ thống gọi là autoreloading giúp giám sát toàn bộ hệ thống files để làm mới lại ứng dụng mỗi khi có sự thay đổi diễn ra. Tuy nhiên, autoreloading không được khuyến khích sử dụng ở môi trường production bởi vì sẽ làm tiêu tốn lượng lớn tài nguyên rất nhanh.

Để thực hiện touch-reload, đầu tiên bạn cần mở lại file uwsgi.ini:

sudo nano uwsgi.ini

Sau đó, thêm dòng sau vào cuối của file:

module = main
callable = app
master = true
touch-reload = /app/uwsgi.ini

Dòng lệnh trên sẽ chỉ định cho toàn bộ ứng dụng của bạn sẽ được làm mới cập nhật lại mỗi khi có một file cụ thể nào đó bị thay đổi, ở đây là file uwsgi.ini. Sau khi hoàn tất, hãy lưu và đóng file lại.

Để demo cho chức năng này, bạn cần tiến hành chỉnh sửa một chút cho file app/views.py:

sudo nano app/views.py

Hãy thay đổi chuỗi được trả về bởi hàm home() như sau:

from flask import render_template
from app import app

@app.route('/')
def home():
    return "<b>There has been a change</b>"

@app.route('/template')
def template():
    return render_template('home.html')

Bạn hãy lưu và đóng file sau khi hoàn tất.

Tiếp theo, nếu bạn mở lại ứng dụng của mình ở http://ip-address:56733, bạn sẽ thấy trang web không có gì thay đổi cả, dòng chữ vẫn là Hello World!. Điều này xảy ra là do điều kiện để làm mới lại ứng dụng là sự thay đổi phải diễn ra ở file uwsgi.ini. Do đó để làm mới lại ứng dụng, bạn cần phải dùng lệnh touch kích hoạt điều kiện như sau:

sudo touch uwsgi.ini

Sau đó, làm mới lại trang web, bạn sẽ thấy dòng chữ như sau. Điều đó có nghĩa là bạn đã cập nhật thay đổi thành công cho trang web của mình.

Trạng thái cập nhật thành công
Trạng thái cập nhật thành công

Vietnix là một trong những nhà cung cấp dịch vụ VPS tốc độ cao uy tín hàng đầu tại Việt Nam. Trong suốt 10 năm hoạt động, Vietnix đã và đang đồng hành cùng 50.000+ khách hàng trong lẫn ngoài nước như: iVIVU.com, Vietnamwork, UBGroup, KINGFOOD, GTV,…

cd
Khởi tạo và triển khai ứng dụng Flask bằng Docker trên Ubuntu 20.04 14

Nhờ mang đến dịch vụ chất lượng cao, năm 2022, Vietnix vinh dự nhận được giải thưởng “Thương hiệu Việt Nam xuất sắc 2022”, hạng mục “Sản phẩm dịch vụ xuất sắc”.

Nếu bạn cần tìm dịch vụ VPS tốc độ cao, chi phí hợp lý thì liên hệ ngay với Vietnix để được hỗ trợ tư vấn ngay.

  • Đị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
  • Email: sales@vietnix.com.vn

Lời kết

Trong bài hướng dẫn này, các bạn đã tạo và chạy ứng dụng Flask của mình bằng Docker trên Ubuntu 20.04, sau đó là tiến hành cập nhật thay đổi cho ứng dụng bằng touch-reload để không cần phải restart lại các containers. Hy vọng đã cung cấp đến bạn những thông tin hữu ích, bạn hãy để lại bình luận bên dưới nhé.

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (191 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