Cách cấu hình Nginx như một Web Server và Reverse Proxy cho Apache trên máy chủ Ubuntu 20.04

Lượt xem
Home

Nginx là một web server chất lượng và hiệu quả, được sử dụng rộng rãi có thể hoạt động như một reverse proxy. Khi kết hợp với Apache, nó có thể cung cấp hiệu suất tốt hơn và tăng tính linh hoạt để phục vụ nội dung web. Trong bài viết này, Vietnix sẽ hướng dẫn bạn cách cấu hình Nginx làm web server và reverse proxy cho Apache trên Ubuntu 20.04.

Yêu cầu để cấu hình Nginx làm web server và reverse proxy cho Apache trên Ubuntu 20.04.

Để thực hiện hướng dẫn này, bạn cần có:

  • Một máy chủ Ubuntu 20.04 với một user non-root có quyền sudo và firewall.
  • 4 tên miền được cấu hình để trỏ đến địa chỉ IP cho server của bạn. Nếu bạn lưu trữ DNS của tên miền của mình ở nơi khác, bạn nên tạo các bản ghi A phù hợp ở đó.

Nếu bạn cần tên miền và máy chủ Ubuntu để cài đặt Nginx, hãy tham khảo đăng ký tên miền và VPS Server tại Vietnix. Vietnix hiện đang cung cấp dịch vụ đăng ký tên miền và cho thuê các gói VPS hỗ trợ hệ điều hành Ubuntu với nhiều cấu hình và chi phí hợp lý giúp bạn dễ dàng lựa chọn gói dịch vụ phù hợp với nhu cầu sử dụng.

Thuê VPS của Vietnix giúp bạn yên tâm cài đặt, triển khai các ứng dụng nhờ tốc độ cao, ổn định và bảo mật an toàn. Liên hệ ngay với Vietnix để được tư vấn chi tiết.

Bước 1: Cài đặt Apache và PHP-FPM

Đầu tiên, cập nhật danh sách gói:

sudo apt update

Tiếp theo cài đặt gói ApachePHP-FPM:

sudo apt install apache2 php-fpm

Module FastCGI Apache sẽ không có sẵn trong kho lưu trữ Ubuntu nên phải tải từ kernel.org và cài đặt bằng câu lệnh dpkg

wget https://mirrors.edge.kernel.org/ubuntu/pool/multiverse/liba/libapache-mod-fastcgi/libapache2-mod-fastcgi_2.4.7~0910052141-1.2_amd64.deb
sudo dpkg -i libapache2-mod-fastcgi_2.4.7~0910052141-1.2_amd64.deb

Bước 2: Cấu hình Apache và PHP-FPM

Bạn đổi cổng Apache sang 8080 và cấu hình để làm việc với PHP-FPM bằng cách sửu dụng module mod_fastcgi. Đổi tên file cấu hình ports.conf của Apache bằng:

sudo mv /etc/apache2/ports.conf /etc/apache2/ports.conf.default

Tạo mới một file ports.conf với cổng 8080:

echo "Listen 8080" | sudo tee /etc/apache2/ports.conf

Lưu ý: Những web server thường được thiết lập để bắt các sự kiện trên địa chỉ 127.0.0.1:8080 khi cấu hình một reverse proxy. Tuy nhiên việc này sẽ thiết lập giá trị của biến môi trường SERVER_ADDR của PHP thành địa chỉ IP loopback thay vì địa chỉ IP public của server. Để thiết lập Apache sao cho các trang web của nó không nhìn thấy một reverse proxy đặt trước nó, bạn cần cấu hình nó lắng nghe tại cổng 8080 trên tất cả các địa chỉ IP.

Tiếp theo tạo một file virtual server cho Apache, chỉ thị <VirtualHost> trong tệp này sẽ được đặt để chỉ phục vụ các trang web trên cổng 8080.

Vô hiệu hoá virtual server mặc định:

sudo a2dissite 000-default

Tiếp theo, tạo một file virtual server mới:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/001-default.confsudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/001-default.conf

Mở file cấu hình mới bằng cách:

sudo nano /etc/apache2/sites-available/001-default.conf

Đổi listening port sang 8080:

<VirtualHost *:8080>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Lưu và kích hoạt các cài đặt mới:

sudo a2ensite 001-default

Reload Apache:

sudo systemctl reload apache2

Cài đặt gói net-tools chứa lệnh netstat:

sudo apt install net-tools

Xác nhận lại rằng Apache đang listening trên cổng 8080:

Kết quả sẽ hiển thị ra như sau, với apache2 đang listen trên cổng 8080:

Output
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address     Foreign Address      State    PID/Program name
tcp        0                0 0.0.0.0:22           0.0.0.0:*                LISTEN   1086/sshd
tcp6      0                0 :::8080                :::*                        LISTEN   4678/apache2
tcp6      0                0 :::22                    :::*                        LISTEN   1086/sshd

Bước 3: Cấu hình Apache để sử dụng mod_fastcgi

Apache phục vụ các trang PHP bằng cách sử dụng mod_php theo mặc định, để hoạt động với PHP-FPM bạn cần cấu hình một số chi tiết.

Lưu ý: Nếu bạn đang thực hiện trên bản cài đặt LAMP với mod_php thì trước tiên phải dùng sudo a2dismod php7.4 để tắt nó.

Bạn sẽ thêm khối cấu hình cho mod_fastcgi, khối này phụ thuộc vào mod_action. Theo mặc định, mod_action sẽ bị vô hiệu hoá, vì vậy trước tiên bạn hãy bật nó lên bằng cách:

sudo a2enmod actions

Đổi tên file cấu hình FastCGI có sẵn:

sudo mv /etc/apache2/mods-enabled/fastcgi.conf /etc/apache2/mods-enabled/fastcgi.conf.default

Tạo mới một file cấu hình:

sudo nano /etc/apache2/mods-enabled/fastcgi.conf

Thêm các lệnh sau vào file để chuyển tiếp các yêu cầu cho file .php sang socket UNIX PHP-FPM.

<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiIpcDir /var/lib/apache2/fastcgi
  AddType application/x-httpd-fastphp .php
  Action application/x-httpd-fastphp /php-fcgi
  Alias /php-fcgi /usr/lib/cgi-bin/php-fcgi
  FastCgiExternalServer /usr/lib/cgi-bin/php-fcgi -socket /run/php/php7.4-fpm.sock -pass-header Authorization
  <Directory /usr/lib/cgi-bin>
    Require all granted
  </Directory>
</IfModule>

Lưu các thay đổi và chạy thử để kiểm tra:

sudo apachectl -t

Lưu ý: Bạn hãy bỏ qua các cảnh báo: Could not reliably determine the server's fully / qualified domain name, using 127.0.1.1. Set the /'ServerName' directive globally/ to suppress this message. Bạn sẽ cấu hình tên server ở các bước sau.

Tải lại Apache khi dòng chữ Syntax OK hiển thị:

sudo systemctl reload apache2

Bước 4: Xác minh lại các chức năng PHP

Đảm bảo rằng PHP hoạt động bằng cách tạo tệp phpinfo() và truy cập file đó từ trình duyệt web.

Tạo một tệp /var/www/html/info.php, nó sẽ chứa lệnh gọi hàm phpinfo:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Lưu ý rằng nếu bạn đã làm theo thiết lập server ban đầu trong phần yêu cầu thì có thể bạn đã bật firewall Apache. Đảm bảo bạn có thể truy cập IP của mình trên cổng 8080 (hiện không thể truy cập được). Bạn sẽ hạn chế quyền truy cập công khai vào cổng này trong Bước 10.

Cho phép cổng 8080 thông qua firewall:

sudo ufw allow 8080

Đảm bảo lưu lượng truy cập TLS trên cổng 443 có thể vào.

Chấp nhận Apache Full kiểm soát lưu lượng truy cập trên cổng 80443:

sudo ufw allow "Apache Full"

Kiểm tra lại trạng thái firewall:

sudo ufw status

Kết quả sẽ hiển thị ra như sau:

Output
To                              Action          From
--                                ------            ----
OpenSSH                   ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
8080                          ALLOW       Anywhere
OpenSSH (v6)            ALLOW       Anywhere (v6)
Apache Full (v6)         ALLOW       Anywhere (v6)
8080 (v6)                   ALLOW       Anywhere (v6)

Bạn sẽ thấy rằng cổng 8080Apache Full đã được cho phép thông qua firewall. Bây giờ hãy xem trang info.php

Để kiểm tra trang info.php trên trình duyệt, hãy đi đến http://your_server_ip:8080/info.php. Nó sẽ hiển thị list các hiệu chỉnh cài đặt PHP đang sử dụng:

Kiểm tra server API
Kiểm tra server API
Danh sách các hiệu chỉnh cài đặt
Danh sách các hiệu chỉnh cài đặt

Kiểm tra xem Server API có ghi FPM/FastCGI không, tiếp đến, phần PHP Variables sẽ cho bạn biết SERVER_SOFTWARE là Apache trên Ubuntu. Chúng xác nhận rằng mod_fastcgi đang hoạt động và Apache đang sử dụng PHP-FPM để xử lí các tệp PHP.

Bước 5: Tạo virtual server cho Apache

Hãy tạo virtual server Apache cho tên miền apache1.your_domainapache2.your_domain. Để làm được điều này, đầu tiên bạn tạo một thư mục gốc cho cả hai trang web và đặt một số tệp mặc định vào các thư mục đó để bạn có thể dễ dàng hơn trong việc kiểm tra cấu hình.

sudo mkdir -v /var/www/apache1.your_domain /var/www/apache2.your_domain

Tạo file index cho từng site:

echo "<h1 style='color: green;'>Apache 1</h1>" | sudo tee /var/www/apache1.your_domain/index.html
echo "<h1 style='color: red;'>Apache 2</h1>" | sudo tee /var/www/apache2.your_domain/index.html

Sau đó, tạo file phpinfo() cho từng trang web để có thể kiểm tra xem PHP có được cấu hình đúng hay không:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/apache1.your_domain/info.php
echo "<?php phpinfo(); ?>" | sudo tee /var/www/apache2.your_domain/info.php

Tạo file virtual server cho apache1.your_domain:

sudo nano /etc/apache2/sites-available/apache1.your_domain.conf

Thêm đoạn code sau vào file để định nghĩa virtual server:

    <VirtualHost *:8080>
        ServerName apache1.your_domain
        ServerAlias www.apache1.your_domain
        DocumentRoot /var/www/apache1.your_domain
        <Directory /var/www/apache1.your_domain>
            AllowOverride All
        </Directory>
    </VirtualHost>

Dòng AllowOverride All cho phép bật tính năng hỗ trợ .htaccess.

Lưu và đóng file. Sau đó, tạo một cấu hình tương tự cho apache2.your_domain. Trước tiên, tạo file:

sudo nano /etc/apache2/sites-available/apache2.your_domain.conf

Sau đó, thêm cấu hình sau vào file:

/etc/apache2/sites-available/apache2.<^>your_domain<^>.conf
    <VirtualHost *:8080>
        ServerName apache2.your_domain
        ServerAlias www.apache2.your_domain
        DocumentRoot /var/www/apache2.your_domain
        <Directory /var/www/apache2.your_domain
            AllowOverride All
        </Directory>
    </VirtualHost>

Lưu file và thoát khỏi trình soạn thảo.

Sau khi 2 virtual host Apache đã thiết lập, bạn kích hoạt các trang web bằng lệnh a2ensite. Lệnh này sẽ tạo một liên kết tượng trưng đến tệp virtual host trong thư mục sites-enabled:

sudo a2ensite apache1.your_domain
sudo a2ensite apache2.your_domain

Kiểm tra lại Apache để xem có lỗi cấu hình không bằng cách chạy lệnh sau:

sudo apachectl -t

Nếu không có lỗi, bạn sẽ thấy “Syntax OK” được hiển thị. Nếu bạn thấy bất kỳ thông báo nào khác, hãy xem lại cấu hình và thử lại.

Reload lại Apache để áp dụng các thay đổi sau khi cấu hình của bạn không có lỗi:

sudo systemctl reload apache2

Để xác nhận các trang web hoạt động, hãy mở http://apache1.your_domain:8080http://apache2.your_domain:8080 trong trình duyệt của bạn và xác nhận rằng mỗi trang web hiển thị tệp index.html của riêng mình. Bạn sẽ thấy các kết quả sau đây:

Kiểm tra Apache 1
Kiểm tra Apache 1
Kiểm tra Apache 2
Kiểm tra Apache 2

Bạn sẽ thấy cùng một danh sách thông số cấu hình PHP trên mỗi trang web như bạn đã thấy trong Bước 4.

Bước 6: Cài đặt và cấu hình Nginx

Ở bước này, bạn sẽ cài đặt Nginx và cấu hình các tên miền nginx1.your_domainnginx2.your_domain như các server ảo của Nginx.

Cài đặt Nginx bằng trình quản lý gói apt:

sudo apt install nginx

Sau đó, xóa liên kết tượng trưng của server ảo mặc định vì bạn sẽ không sử dụng nó nữa:

sudo rm /etc/nginx/sites-enabled/default

Sau đó, bạn hãy tạo một trang web mặc định riêng của bạn (nginx1.your_domain).

Bây giờ bạn sẽ tạo các server ảo cho Nginx sử dụng chung phương thức mà bạn đã dùng cho Apache. Đầu tiên tạo thư mục root cho cả hai trang web:

sudo mkdir -v /usr/share/nginx/nginx1.your_domain /usr/share/nginx/nginx2.your_domain

Bạn sẽ lưu trữ các trang web Nginx trong thư mục /usr/share/nginx, đây là thư mục mặc định mà Nginx thường muốn được lưu trữ. Bạn có thể lưu trữ chúng dưới thư mục /var/www/html cùng với các trang web Apache, nhưng việc phân tách này có thể khiến bạn liên kết các trang web với Nginx.

Tương tự với cách bạn đã làm với các server ảo của Apache, hãy tạo các tệp index phpinfo() để kiểm tra sau khi hoàn thành cài đặt:

echo "<h1 style='color: green;'>Nginx 1</h1>" | sudo tee /usr/share/nginx/nginx1.your_domain/index.html
echo "<h1 style='color: red;'>Nginx 2</h1>" | sudo tee /usr/share/nginx/nginx2.your_domain/index.html
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/nginx1.your_domain/info.php
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/nginx2.your_domain/info.php

Bây giờ bạn tạo một virtual server cho cho miền nginx1.your_domain:

sudo nano /etc/nginx/sites-available/nginx1.your_domain

Nginx xem server {. . .} như là các khu vực của tệp cấu hình các khối server. Tạo một server block cho virtual server chính là nginx1.your_domain. Chỉ thị cấu hình default_server làm cho đây là virtual host mặc định xử lý các yêu cầu HTTP không phù hợp với bất kỳ virtual host nào khác. Cấu hình chỉ thị  default_server khiến cho đây trở thành virtual server mặc định xử lí các yêu cầu HTTP mà không phù hợp với bất kì với virtual server nào khác.

server {
    listen 80 default_server;

    root /usr/share/nginx/nginx1.your_domain;
    index index.php index.html index.htm;

    server_name nginx1.your_domain www.nginx1.your_domain;
    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        include snippets/fastcgi-php.conf;
    }
}

Lưu và đóng file. Tạo file virtual server cho miền thứ hai của Nginx, nginx2.your_domain :

sudo nano /etc/nginx/sites-available/nginx2.your_domain

Thêm những câu lệnh dưới đây vào file:

server {
    root /usr/share/nginx/nginx2.your_domain;
    index index.php index.html index.htm;

    server_name nginx2.your_domain www.nginx2.your_domain;
    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        include snippets/fastcgi-php.conf;
    }
}

Sau đó lưu và đóng file. Kích hoạt cả hai trang thông qua các liên kết tượng trưng đến thư mục sites-enabled:

sudo ln -s /etc/nginx/sites-available/nginx1.your_domain /etc/nginx/sites-enabled/nginx1.your_domain
sudo ln -s /etc/nginx/sites-available/nginx2.your_domain /etc/nginx/sites-enabled/nginx2.your_domain

Chạy thử cấu hình Nginx:

sudo nginx -t

Reload lại nếu không có lỗi:

sudo systemctl reload nginx

Truy cập file phpinfo() cho cả 2 virtual servers trên trình duyệt web bằng cách truy cập vào trang web http://nginx1.your_domain/info.phphttp://nginx2.your_domain/info.php, nhìn vào các phần biến số PHP một lần nữa.

Mục [“SERVER_SOFTWARE”] sẽ hiển thị là Nginx, biểu thị rằng các file được phục vụ trực tiếp bởi Nginx.

Mục [“DOCUMENT_ROOT”] sẽ chỉ bạn đến thẳng thư mục bạn đã tạo trước đó cho từng trang web Nginx. Hoàn thành bước này, bạn đã hoàn tất cài đặt Nginx và tạo 2 virtual server.

Bước 7: Cấu hình Nginx cho các virtual server của Apache

Tạo thêm một tệp virtual server Nginx với nhiều tên miền trong các chỉ thị server_name. Các yêu cầu cho các tên miền này sẽ được chuyển tiếp đến Apache. Tạo một tệp virtual server Nginx mới để chuyển tiếp các yêu cầu đến Apache:

sudo nano /etc/nginx/sites-available/apache

Thêm đoạn code sau đây vào cấu hình, đoạn code này chỉ định tên miền của các virtual server trong Apache và chuyển tiếp yêu cầu của chúng đến Apache. Hãy nhớ sử dụng địa chỉ IP công khai trong proxy_pass:

server {
    listen 80;
    server_name apache1.your_domain www.apache1.your_domain apache2.your_domain www.apache2.your_domain;

    location / {
        proxy_pass http://your_server_ip:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Lưu file và kích hoạt virtual server mới này bằng cách tạo một liên kết tượng trưng:

sudo ln -s /etc/nginx/sites-available/apache /etc/nginx/sites-enabled/apache

Kiểm tra lại cấu hình:

sudo nginx -t

Reload lại nếu không có lỗi:

sudo systemctl reload nginx

Mở trình duyệt và truy cập URL http://apache1.your_domain/info.php thông qua trình duyệt của bạn. Kéo xuống phần biến số PHP và kiểm tra các giá trị được hiển thị. Các biến số SERVER_SOFTWAREDOCUMENT_ROOT xác nhận rằng yêu cầu này đã được xử lý bởi Apache. Các biến số HTTP_X_REAL_IPHTTP_X_FORWARDED_FOR đã được thêm bởi Nginx và sẽ hiển thị công khai địa chỉ IP của máy tính bạn đang sử dụng để truy cập URL (nếu bạn truy cập Apache trực tiếp trên cổng 8080 thì bạn sẽ không thấy các biến số trên).

Như vậy, bạn đã thành công trong việc thiết lập Nginx để chuyển tiếp các yêu cầu cho các tên miền cụ thể đến Apache. Ở bước tiếp theo, bạn sẽ cấu hình Apache để đặt biến REMOTE_ADDR như thể biến này đang xử lý các yêu cầu một cách trực tiếp.

Bước 8: Cài đặt và cấu hình mod_rpaf

Trong bước này, bạn cài đặt một module của Apache được gọi là mod_rpaf, module này sẽ viết lại các giá trị của REMOTE_ADDR, HTTPSHTTP_PORT dựa trên các giá trị được cung cấp bởi một reverse proxy.

Nếu không có module này, một số ứng dụng PHP sẽ yêu cầu thay đổi mã để có thể hoạt động ngầm mượt mà phía sau proxy.

Module này có sẵn trong kho lưu trữ của Ubuntu với tên là libapache2-mod-rpaf, tuy nhiên phiên bản hiện tại đã lỗi thời và không hỗ trợ một số chỉ thị cấu hình. Thay vào đó, bạn sẽ cài đặt nó từ mã nguồn.

Chuyển đến thư mục home và cài đặt các gói cần thiết để xây dựng module:

wget https://github.com/gnif/mod_rpaf/archive/stable.zip

Giải nén file đã tải:

unzip stable.zip

Chuyển vào thư mục mới chứa các file:

cd mod_rpaf-stable

Biên dịch và cài đặt module:

make
sudo make install

Tạo một tệp trong thư mục mods-available để tải module rpaf:

sudo nano /etc/apache2/mods-available/rpaf.load

Thêm đoạn code sau vào file để tải module:

LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf.so

Lưu và thoát khỏi trình soạn thảo.

Tạo một file khác trong thư mục này có tên rpaf.conf chứa các chỉ thị cấu hình cho mod_rpaf:

sudo nano /etc/apache2/mods-available/rpaf.conf

Thêm đoạn code sau để cấu hình mod_rpaf, đảm bảo ghi rõ địa chỉ IP server của bạn:

<IfModule mod_rpaf.c>
        RPAF_Enable             On
        RPAF_Header             X-Real-Ip
        RPAF_ProxyIPs           your_server_ip 
        RPAF_SetHostName        On
        RPAF_SetHTTPS           On
        RPAF_SetPort            On
    </IfModule>

Dưới đây là mô tả ngắn gọn của mỗi chỉ thị. Xem tệp README của mod_rpaf để biết thêm thông tin.

  • RPAF_Header: Tiêu đề sử dụng cho địa chỉ IP thực của máy client.
  • RPAF_ProxyIPs: Địa chỉ IP của proxy để điều chỉnh yêu cầu HTTP.
  • RPAF_SetHostName: Cập nhật tên của virtual server để ServerName ServerAlias hoạt động.
  • RPAF_SetHTTPS: Đặt biến môi trường HTTPS dựa trên giá trị chứa trong X-Forwarded-Proto.
  • RPAF_SetPort: Đặt biến môi trường SERVER_PORT. Điều này hữu ích khi Apache đứng sau một proxy SSL.

Lưu file rpaf.conf và kích hoạt module:

sudo a2enmod rpaf

Điều này tạo ra các liên kết tượng trưng của các tệp rpaf.loadrpaf.conf trong thư mục mods-enabled. Bây giờ thực hiện kiểm tra lại cấu hình:

sudo apachectl -t

Reload lại Apache nếu không phát hiện lỗi nào:

sudo systemctl reload apache2

Truy cập vào trang phpinfo() http://apache1.your_domain/info.phphttp://apache2.your_domain/info.php trong trình duyệt của bạn và kiểm tra phần PHP Variables. Biến REMOTE_ADDR sẽ là địa chỉ IP công khai của máy tính của bạn.

Bây giờ bạn sẽ thiết lập mã hóa TLS/SSL cho mỗi trang web.

Bước 9: Thiết lập website HTTPS với Let’s Encrypt (Tùy chọn)

Trong bước này, bạn sẽ cấu hình chứng chỉ TLS/SSL cho cả hai tên miền được lưu trữ trên Apache. Bạn có thể lấy chứng chỉ miễn phí của Let’s Encrypt (https://letsencrypt.org) hoặc sử dụng dịch vụ SSL trả phí của Vietnix. Vietnix cung cấp các gói SSL với mức giá chỉ từ 160.000 VND/Năm cho cả người dùng cá nhân lẫn các tổ chức, doanh nghiệp. Liên hệ với Vietnix để được tư vấn chi tiết hơn.

cd SSL
Cách cấu hình Nginx như một Web Server và Reverse Proxy cho Apache trên máy chủ Ubuntu 20.04 12

Nginx hỗ trợ việc hủy bỏ SSL, vì vậy bạn có thể thiết lập SSL mà không cần sửa đổi các tệp cấu hình của Apache. Module mod_rpaf đảm bảo rằng các biến môi trường cần thiết đều được thiết lập trên Apache để các ứng dụng hoạt động ngầm một cách mượt mà trong một server proxy SSL.

Đầu tiên, bạn sẽ tách các khối server {...} của cả hai tên miền để mỗi tên miền có thể có chứng chỉ SSL riêng của mình. Mở file /etc/nginx/sites-available/apache trong trình soạn thảo của bạn:

sudo nano /etc/nginx/sites-available/apache

Chỉnh sửa lại file như bên dưới với mỗi tệp apache1.your_domainapache2.your_domain trong các khối server của riêng chúng:

server {
        listen 80;
        server_name apache1.your_domain www.apache1.your_domain;
    
        location / {
            proxy_pass http://your_server_ip:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    server {
        listen 80;
        server_name apache2.your_domain www.apache2.your_domain;
    
        location / {
            proxy_pass http://your_server_ip:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

Sử dụng Certbot để tạo chứng chỉ TLS/SSL của riêng mình. Plugin Nginx sẽ đảm nhận trách nhiệm cấu hình lại Nginx và tải lại cấu hình bất cứ khi nào cần thiết.

Cài đặt Certbot bằng snapd.

sudo snap install --classic certbot

Sau khi cài đặt xong Certbot, hãy sử dụng câu lệnh certbot để tạo các chứng chỉ SSL cho apache1.your_domainwww.apache1.your_domain

sudo certbot --agree-tos --no-eff-email --email your-email --nginx -d apache1.your_domain -d www.apache1.your_domain

Lệnh này yêu cầu Certbot sử dụng plugin nginx, sử dụng -d để chỉ định các tên mà bạn muốn chứng chỉ có hiệu lực.

Sử dụng lệnh tương tự cho tên miền thứ hai:

sudo certbot --agree-tos --no-eff-email --email your-email --nginx -d apache2.your_domain -d www.apache2.your_domain

Truy cập vào một trong các tên miền của Apache trên trình duyệt của bạn bằng cách sử dụng tiền tố https://; truy cập https://apache1.your_domain/info.php hoặc https://apache2.your_domain/info.php.

Hãy xem trong phần PHP Variables. Biến SERVER_PORT đã được chuyển thành 443 và biến HTTPS được đổi sang trạng thái on, dường như Apache đã được truy cập trực tiếp qua HTTPS. Với sự thay đổi của các biến trên, các ứng dụng PHP không cần phải được cấu hình đặc biệt để hoạt động ngầm phía trong một reverse proxy.

Bước 10: Chặn truy cập trực tiếp vào Apache (Tùy chọn)

Apache lắng nghe trên cổng 8080 thông qua địa chỉ IP công khai, vì vậy Apache có thể truy cập được bởi nhiều người. Apache có thể bị chặn bằng cách thiết lập lệnh IPtables sau vào rule firewall.

sudo iptables -I INPUT -p tcp --dport 8080 ! -s your_server_ip -j REJECT --reject-with tcp-reset

Sử dụng địa chỉ IP server của bạn ở vị trí được đánh dấu. Sau khi cổng 8080 bị chặn bởi firewall, hãy thử kiểm tra xem Apache có không thể truy cập được nó hay không. Mở trình duyệt web của bạn và thử truy cập một trong các tên miền của Apache trên cổng 8080. Ví dụ: http://apache1.your_domain:8080

Trình duyệt của bạn sẽ hiển thị một thông báo lỗi “Unable to connect” hoặc “Webpage is not available”. Với tùy chọn tcp-reset của IPtables được áp dụng, người khác sẽ không thấy bất kì sự khác biệt giữa cổng 8080 và một cổng không hoạt động.

Lưu ý: Quy tắc IPtables mặc định bị xóa ngay sau khi khởi động lại hệ thống. Có nhiều cách để bảo vệ các câu lệnh IPtables, nhưng cách đơn giản nhất là sử dụng iptables-persistent trong kho lưu trữ của Ubuntu.

Bước 11: Thiết lập Nginx để phục vụ các static files (Tùy chọn)

Khi Nginx chuyển tiếp các yêu cầu cho các tên miền của Apache, Apache sẽ gửi mọi yêu cầu file cho tên miền đó đến Apache. Nginx hoạt động nhanh hơn Apache trong việc phục vụ các static files như hình ảnh, JavaScript và Stylesheets. Vì vậy, bạn hãy cấu hình file virtual server apache của Nginx để phục vụ các static files một cách trực tiếp, nhưng gửi các yêu cầu PHP cho Apache xử lý.

Mở file /etc/nginx/sites-available/apache trong trình soạn thảo của bạn:

sudo nano /etc/nginx/sites-available/apache

Thêm hai khối location bổ sung vào mỗi khối server, cũng như sửa đổi các phần location hiện có. Ngoài ra, bạn cần cho Nginx biết nơi để tìm các static files cho mỗi trang web.

Nếu không sử dụng chứng chỉ SSL và TLS, hãy sửa file như sau:

server {
    listen 80;
    server_name apache2.your_domain www.apache2.your_domain;
    root /var/www/your_domain;
    index index.php index.htm index.html;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        proxy_pass http://your_server_ip:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ /\.ht {
        deny all;
    }
}

server {
    listen 80;
    server_name apache1.your_domain www.apache1.your_domain;
    root /var/www/your_domain;
    index index.php index.htm index.html;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        proxy_pass http://your_ip_address:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ /\.ht {
        deny all;
    }
}

Nếu bạn muốn tiền tố HTTPS khả dụng, hãy thiết lập cấu hình như sau thay cho cấu hình phía trên:

server {
    listen 80;
    server_name apache2.your_domain www.apache2.your_domain;
    root /var/www/your_domain;
    index index.php index.htm index.html;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        proxy_pass http://your_server_ip:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ /\.ht {
        deny all;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

server {
    listen 80;
    server_name apache1.your_domain www.apache1.your_domain;
    root /var/www/your_domain;
    index index.php index.htm index.html;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        proxy_pass http://your_ip_address:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ /\.ht {
        deny all;
    }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

Chỉ thị try_files khiến Nginx tìm kiếm các tệp trong thư mục gốc và phục vụ chúng trực tiếp. Nếu file có phần mở rộng là .php, yêu cầu sẽ được chuyển tiếp đến Apache. Ngay cả khi tệp không được tìm thấy trong thư mục root, yêu cầu cũng được chuyển tiếp đến Apache để các tính năng của ứng dụng như liên kết tĩnh (permalinks) có thể hoạt động trơn tru mà không gặp vấn đề.

Cảnh báo: Chỉ thị location ~ /\.ht rất quan trọng; điều này ngăn Nginx phục vụ nội dung của các file cấu hình Apache như .htaccess .htpasswd, chứa thông tin nhạy cảm. Lưu file và kiểm tra cấu hình:

sudo nginx -t

Nếu quá trình kiểm tra không có lỗi hãy reload lại Nginx:

sudo service nginx reload

Để xác minh rằng mọi thứ đang hoạt động, bạn có thể xem các tệp nhật ký của Apache trong /var/log/apache2 và xem các yêu cầu GET cho các tệp info.php của apache2.your_domainapache1.your_domain. Sử dụng lệnh tail để xem vài dòng cuối cùng của file và sử dụng công tắc -f để theo dõi file cho các thay đổi.

sudo tail -f /var/log/apache2/other_vhosts_access.log

Truy cập apache1.your_domain/info.php hoặc apache2.your_domain/info.php trên trình duyệt và xem output từ nhật ký. Bạn sẽ thấy rằng Apache đang trả lời (cổng của bạn sẽ là 80 hoặc 443 tùy thuộc vào việc bạn đã bảo mật phiên bản đó hay không):

Output
    apache2.your_domain:80 your_server_ip - - [27/Aug/2020:18:18:34 -0400] "GET /info.php HTTP/1.0" 200 20414 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"

Sau đó, truy cập trang index.html cho mỗi trang webs, bạn sẽ không thấy bất kỳ mục nhật ký nào từ Apache. Vì Nginx đang phục vụ chúng.

Khi bạn hoàn tất quan sát file nhật ký, nhấn CTRL + C để ngừng theo dõi.

Với cài đặt này, Apache sẽ không thể hạn chế truy cập vào các static files. Kiểm soát truy cập cho các static files sẽ cần được cấu hình trong virtual host file của apache trong Nginx, nhưng điều đó nằm ngoài phạm vi của bài viết này.

Lời kết

Trên đây là các bước hướng dẫn chi tiết cách cấu hình Nginx làm Web Server và Reverse Proxy cho Apache trên Ubuntu 20.04. Hy vọng những thông tin này sẽ hữu ích với bạn. Nếu còn vấn đề nào chưa rõ, 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 - (64 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