Sunday, January 19, 2025

Cài đặt Snipe It trên Centos 7

-

1. Tổng quan.

Snipe It là một phần mềm mã nguồn mở được sử dụng để quản lý tài sản. Nó giúp các tổ chức và doanh nghiệp theo dõi, quản lý và bảo trì các tài sản vật lý của họ như máy tính, thiết bị, công cụ, phương tiện di chuyển và nhiều thứ khác.

Phần mềm Snipe It cung cấp một giao diện dễ sử dụng để nhập liệu và lưu trữ thông tin về tài sản, cho phép người dùng:

  • Đăng ký các tài sản mới: Người dùng có thể thêm thông tin về các tài sản mới, bao gồm tên, mô tả, số lượng, giá trị, ngày mua, và nhiều thông tin khác.
  • Theo dõi lịch sử bảo trì: Snipe It cho phép người dùng ghi chép các hoạt động bảo trì và sửa chữa của từng tài sản, đảm bảo chúng luôn trong tình trạng hoạt động tốt.
  • Xác định vị trí: Người dùng có thể gán vị trí và địa điểm của từng tài sản, giúp dễ dàng tìm kiếm và kiểm tra chúng.
  • Xem lịch sử tài sản: Snipe It cho phép người dùng xem lịch sử di chuyển và sử dụng của tài sản, giúp quản lý tài sản một cách hiệu quả.
  • Tạo báo cáo: Phần mềm cung cấp tính năng tạo các báo cáo thống kê và phân tích về tình trạng tài sản và việc quản lý chúng.

Với giao diện thân thiện và tính năng mạnh mẽ, Snipe It là một công cụ hữu ích cho việc quản lý tài sản của các tổ chức và doanh nghiệp.

2. Cài đặt Snipe-IT trên Centos 7.

Bước 1 – Tắt SELinux.

Mở file cấu hình của SELinux bằng lệnh vi /etc/selinux/config.

Tìm dòng SELINUX= thay các giá trị như sau:

  • SELINUX=disabled – tắt hoàn toàn
  • SELINUX=permissive – chế độ chỉ ghi ra log các yêu cầu truy cập, luôn cấp quyền truy cập
  • SELINUX=enforcing – kiểm tra quyền đầy đủ

Khi thay đổi chế độ, khởi động lại hệ thống bằng reboot

Bước 2 – Cài đặt PHP7.4 (Yêu cầu phải PHP 7.x trở lên nhé).

Cài đặt EPEL repository, cung cấp các gói phần mềm bổ sung cho CentOS/RHEL.

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Cài đặt Remi repository, một kho lưu trữ phần mềm bổ sung khác, bao gồm các phiên bản PHP mới nhất.

sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

Cài đặt các tiện ích quản lý gói yum, giúp quản lý các kho lưu trữ và gói phần mềm dễ dàng hơn.

sudo yum -y install yum-utils

Kích hoạt repository Remi có chứa các gói PHP phiên bản 7.4.

sudo yum-config-manager --enable remi-php74

Cập nhật các gói phần mềm đã cài đặt lên phiên bản mới nhất.

sudo yum update

Cài đặt gói PHP từ repository Remi với phiên bản đã được chỉ định (7.4).

sudo yum install php -y

Kiểm tra phiên bản của PHP đã cài đặt trên hệ thống.

php -v

Đầu ra kết quả.

PHP 7.4.33 (cli) (built: Jun  6 2023 16:33:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

Bước 3 – Cài đặt các module của PHP.

Chúng ta thực hiện cài đặt một số gói phần mềm liên quan đến PHP và PHP-FPM.

yum install -y php-cli php-openssl php-pdo php-mbstring php-tokenizer php-curl php-mysql php-ldap php-zip php-fileinfo php-gd php-dom php-mcrypt php-bcmath php php-fpm php-simplexml php-mysqlnd

Dưới đây là giải thích về từng gói:

  • php-cli: Cài đặt gói PHP Command Line Interface (CLI), cho phép chạy các lệnh PHP trực tiếp từ dòng lệnh.
  • php-openssl: Hỗ trợ mã hóa và giải mã dữ liệu qua giao thức SSL/TLS trong PHP.
  • php-pdo: Cung cấp lớp PHP Data Objects (PDO) để làm việc với cơ sở dữ liệu.
  • php-mbstring: Hỗ trợ các hàm xử lý byte trong PHP, hữu ích khi làm việc với các ngôn ngữ có các ký tự không thuộc bảng mã ASCII.
  • php-tokenizer: Cho phép phân tích cú pháp mã nguồn PHP thành các token riêng lẻ.
  • php-curl: Hỗ trợ các chức năng cURL trong PHP, cho phép gửi và nhận dữ liệu qua các giao thức như HTTP, HTTPS, FTP, v.v.
  • php-mysql: Hỗ trợ kết nối và làm việc với cơ sở dữ liệu MySQL trong PHP.
  • php-ldap: Hỗ trợ tích hợp với dịch vụ thư mục Lightweight Directory Access Protocol (LDAP) trong PHP.
  • php-zip: Hỗ trợ nén và giải nén các tập tin zip trong PHP.
  • php-fileinfo: Cung cấp thông tin về loại tập tin và mã hóa trong PHP.
  • php-gd: Hỗ trợ thư viện GD Graphics trong PHP, cho phép xử lý hình ảnh.
  • php-dom: Hỗ trợ truy vấn và xử lý tài liệu XML và HTML thông qua DOM (Document Object Model) trong PHP.
  • php-mcrypt: Hỗ trợ thư viện Mcrypt để mã hóa và giải mã trong PHP. Lưu ý rằng từ PHP 7.1, Mcrypt đã được loại bỏ, nên không cần thiết nếu sử dụng PHP 7.2 trở lên.
  • php-bcmath: Hỗ trợ các hàm toán học đối với số thực lớn trong PHP.
  • php: Cài đặt gói PHP core (nhân) – bao gồm các file thực thi cần thiết để chạy PHP.
  • php-fpm: Cài đặt PHP-FPM (PHP FastCGI Process Manager) – một trình quản lý dựa trên FastCGI để xử lý các yêu cầu PHP trên máy chủ web.
  • php-simplexml: Hỗ trợ việc xử lý dữ liệu XML đơn giản bằng SimpleXML trong PHP.
  • php-mysqlnd: Hỗ trợ kết nối và làm việc với cơ sở dữ liệu MySQL sử dụng MySQL Native Driver (mysqlnd) trong PHP.

Bước 4 – Cài đặt MariaDB.

Tải xuống file mariadb_repo_setup với tùy chọn -L cho phép chuyển hướng trang web nếu có, và -sS tắt hiển thị thông báo tiến trình và hiển thị lỗi nếu có.

sudo curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup

Chạy file script mariadb_repo_setup với tùy chọn --mariadb-server-version=10.6. Điều này thêm kho lưu trữ MariaDB vào hệ thống và cấu hình nó để cài đặt phiên bản MariaDB 10.6.

sudo bash mariadb_repo_setup --mariadb-server-version=10.6

Sử dụng trình quản lý gói yum để cài đặt MariaDB Server với tùy chọn -y tự động trả lời “yes” cho các câu hỏi xác nhận cài đặt, giúp tiến trình cài đặt diễn ra tự động hơn.

sudo yum install mariadb-server mariadb -y

Khởi động dịch vụ MariaDB Server sau khi cài đặt và cấu hình MariaDB Server để tự động khởi động cùng hệ thống khi khởi động lại.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Bước 5 – Cấu hình MariaDB.

Thay đổi mật khẩu cho tài khoản người dùng “root” của MariaDB (hoặc MySQL) tại máy chủ “localhost”. Sau khi chạy lệnh này, mật khẩu của tài khoản “root” sẽ được đặt thành “hoanghd”.

mysql -u root -e  "ALTER USER 'root'@'localhost' IDENTIFIED BY 'hoanghd';"

Đăng nhập vào cơ sở dữ liệu MariaDB (hoặc MySQL) bằng tài khoản “root” có mật khẩu “hoanghd” và sau đó tạo một cơ sở dữ liệu mới có tên là “snipeit_db”. Cơ sở dữ liệu này sẽ sử dụng bộ ký tự utf8mb4 để hỗ trợ lưu trữ các ký tự đa byte như tiếng Việt.

mysql -u root -phoanghd -e "create database snipeit_db character set utf8mb4 collate utf8mb4_bin;"

Cấp quyền truy cập cho người dùng “root” vào cơ sở dữ liệu “snipeit_db”. Người dùng “root” có thể đăng nhập từ localhost và sử dụng mật khẩu là “hoanghd”. Đồng thời, người dùng này sẽ có toàn quyền (“all privileges”) trên tất cả các bảng trong cơ sở dữ liệu “snipeit_db”.

mysql -u root -phoanghd -e "grant all privileges on snipeit_db.* to root@localhost identified by 'hoanghd';"

Sử dụng lệnh này để đảm bảo rằng các thay đổi được áp dụng ngay lập tức.

mysql -u root -phoanghd -e "FLUSH PRIVILEGES;"

Bước 6 – Cài đặt công cụ Composer.

Composer là một công cụ mã nguồn mở rất phổ biến trong cộng đồng phát triển PHP. Nó cho phép người phát triển xác định các gói phụ thuộc của dự án trong file composer.json. Khi thực hiện lệnh composer install hoặc composer update, Composer sẽ tải xuống và cài đặt các gói phụ thuộc này từ các kho lưu trữ trực tuyến. Điều này giúp giảm thiểu công việc quản lý và giải quyết các gói phụ thuộc, và đảm bảo dự án PHP của bạn có thể hoạt động một cách đáng tin cậy với các phiên bản phù hợp của các gói phụ thuộc.

Sử dụng công cụ curl để tải xuống file installer từ trang web của Composer. Tùy chọn -sS tắt hiển thị thông báo tiến trình và hiển thị lỗi nếu có. Sau khi file installer được tải xuống, nó sẽ được đưa vào luồng đầu vào của trình thông dịch PHP (php), cho phép trình thông dịch PHP thực thi mã bên trong file installer.

curl -sS https://getcomposer.org/installer | php

Di chuyển file composer.phar đến đường dẫn /usr/local/bin/composer. Thư mục /usr/local/bin/ đã được thiết lập trong biến môi trường $PATH, điều này cho phép bạn gọi Composer từ bất kỳ vị trí nào trong hệ thống thông qua lệnh composer.

mv composer.phar /usr/local/bin/composer

Bước 7 – Cài đặt Git, tải sourcode của Snipe-IT về máy.

Để cài đặt Git sử dụng lệnh dưới.

yum -y install git

Vào thư mục /var/www/ để clone source code của Snipe-IT về thư mục này và di chuyển vào thư mục source code vừa clone về.

cd /var/www/
git clone https://github.com/snipe/snipe-it.git
cd snipe-it

Trong thư mục này có file .env.example, chúng ta đổi tên file này thành file .env để sử dụng.

mv /var/www/snipe-it/.env.example /var/www/snipe-it/.env

Bước 8 – Thiết lập các thông tin trong file .env vừa đổi tên ở bước trên:

  • Thay thế giá trị của biến APP_TIMEZONE trong file .env bằng Asia/Ho_Chi_Minh. Điều này sẽ thiết lập múi giờ của ứng dụng Snipe-IT là Asia/Ho_Chi_Minh.
sed -i 's|APP_TIMEZONE=.*|APP_TIMEZONE=Asia/Ho_Chi_Minh|' /var/www/snipe-it/.env

Thay thế giá trị của biến APP_URL trong file .env bằng https://snipeit.hoanghd.com. Điều này sẽ cấu hình URL truy cập ứng dụng Snipe-IT thành https://snipeit.hoanghd.com.

sed -i 's|APP_URL=.*|APP_URL=https://snipeit.hoanghd.com|' /var/www/snipe-it/.env

Thay thế giá trị của biến DB_DATABASE trong file .env bằng snipeit_db. Điều này sẽ đặt tên cơ sở dữ liệu của ứng dụng Snipe-IT là snipeit_db.

sed -i 's|DB_DATABASE=.*|DB_DATABASE=snipeit_db|' /var/www/snipe-it/.env

Thay thế giá trị của biến DB_USERNAME trong file .env bằng root. Điều này sẽ đặt tên DB Name của ứng dụng Snipe-IT là root.

sed -i 's|DB_USERNAME=.*|DB_USERNAME=root|' /var/www/snipe-it/.env

Thay thế giá trị của biến DB_PASSWORD trong file .env bằng hoanghd. Điều này sẽ đặt mật khẩu cho người dùng cơ sở dữ liệu của ứng dụng Snipe-IT là hoanghd.

sed -i 's|DB_PASSWORD=.*|DB_PASSWORD=hoanghd|' /var/www/snipe-it/.env

Kết quả là sau khi thực hiện chuỗi các lệnh này, file .env của ứng dụng Snipe-IT đã được cấu hình với các giá trị mới cho múi giờ, URL truy cập, DB Name, tên người dùng và mật khẩu.

Bước 9 – Cài đặt Nginx.

sudo yum install -y nginx

Bạn hãy sao lưu file nginx.conf trước khi cấu hình tránh trường hợp cấu hình lỗi thì chúng ta rollback lại.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

Chạy đoạn Script dưới để thay đổi nội dung file /etc/nginx/nginx.conf.

cat > /etc/nginx/nginx.conf << 'OEF'
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
}

http {
	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	gzip on;
	include /etc/nginx/conf.d/*.conf;
}
OEF

Hãy phân quyền cho phép Nginx có thể thực thi các thư mục của Snipe-IT.

chmod -R 755 storage 
chmod -R 755 public/uploads
chown -R nginx:nginx storage public/uploads

Khởi động dịch vụ Nginx sau khi cài đặt và cấu hình Nginx để tự động khởi động cùng hệ thống khi khởi động lại.

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Bước 10 – Cài đặt các gói phụ thuộc của Laravel và đã được cấu hình bảo mật với khóa ứng dụng mới được tạo

Sử dụng Composer để cài đặt các phụ thuộc (dependencies) của ứng dụng Laravel từ file composer.lock. Tùy chọn --no-dev giúp bỏ qua việc cài đặt các gói phụ thuộc dành cho môi trường phát triển (ví dụ như các gói kiểm tra, debug, v.v.), điều này thường thực hiện trong môi trường Prod để giảm kích thước và tối ưu hiệu suất ứng dụng. Tùy chọn --prefer-source ưu tiên sử dụng mã nguồn từ các kho lưu trữ của các gói phụ thuộc nếu có.

composer install --no-dev --prefer-source

Đầu ra của nó sẽ kiểu thế này.

$ composer install --no-dev --prefer-source
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
Package operations: 168 installs, 0 updates, 0 removals
  - Installing symfony/deprecation-contracts (v2.5.2): Cloning e8b495ea28
  - Installing psr/http-message (1.0.1): Cloning f6561bf28d
  - Installing psr/http-client (1.0.1): Cloning 2dfb5f6c5e
  - Installing ralouphie/getallheaders (3.0.3): Cloning 120b605dfe

< để làm gọn nên đầu ra này đã lược bỏ bớt >

  - Installing rollbar/rollbar (v2.1.0): Cloning ff3db5739d
  - Installing rollbar/rollbar-laravel (v7.2.0): Cloning d7647ffabf
  - Installing spatie/temporary-directory (1.3.0): Cloning f517729b37
  - Installing spatie/db-dumper (2.21.1): Cloning 05e5955fb8
  - Installing spatie/laravel-backup (6.16.5): Cloning 332fae80b1
  - Installing tecnickcom/tc-lib-color (1.14.14): Cloning f9e45c5949
  - Installing tecnickcom/tc-lib-barcode (1.17.14): Cloning 4907ef1e38
  - Installing unicodeveloper/laravel-password (1.0.4): Cloning 806e345ae9
  - Installing watson/validating (6.1.1): Cloning fda4daaf80
Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead.
Package fruitcake/laravel-cors is abandoned, you should avoid using it. No replacement was suggested.
Package laravelcollective/html is abandoned, you should avoid using it. Use spatie/laravel-html instead.
Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Generating optimized autoload files
Class ParsedownTest located in ./vendor/erusev/parsedown/test/ParsedownTest.php does not comply with psr-0 autoloading standard. Skipping.
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: arietimmerman/laravel-scim-server
Discovered Package: barryvdh/laravel-debugbar
Discovered Package: barryvdh/laravel-dompdf
Discovered Package: eduardokum/laravel-mail-auto-embed
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: intervention/image
Discovered Package: laravel/passport
Discovered Package: laravel/slack-notification-channel
Discovered Package: laravel/socialite
Discovered Package: laravel/tinker
Discovered Package: laravel/ui
Discovered Package: laravelcollective/html
Discovered Package: livewire/livewire
Discovered Package: maatwebsite/excel
Discovered Package: mediconesystems/livewire-datatables
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Discovered Package: pragmarx/google2fa-laravel
Discovered Package: spatie/laravel-backup
Discovered Package: unicodeveloper/laravel-password
Package manifest generated successfully.
> @php artisan vendor:publish --force --tag=livewire:assets --ansi
Copied Directory [/vendor/livewire/livewire/dist] To [/public/vendor/livewire]
Publishing complete.
84 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Tạo và ghi vào file .env giá trị cho appkey. Appkey là một chuỗi ký tự bảo mật được sử dụng để mã hóa thông tin nhạy cảm trong ứng dụng Laravel, như phiên đăng nhập và cookie. Khi chạy lệnh này, Laravel sẽ tạo ngẫu nhiên một khóa ứng dụng mới và cập nhật vào file .env.

php artisan key:generate

Đầu ra sẽ như dưới, do bạn đang cài mới nên hãy xác nhận yes để đồng ý ghi đè Appkey trong file .env.

$ php artisan key:generate
**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 >yes

Lúc này bạn kiểm tra file .env se thấy thông tin APP_KEY đã được gán một key mới mà trước đó không có.

$ cat .env | grep APP_KEY
APP_KEY=base64:lJJgiI0O2OAjx6RzMLg0ArL14IgpHAUDDKVjtyxv45A=

Bước 11 – Cấu hình php-fpm.

Sử dụng một công cụ mà bạn thích để chỉnh sửa một số thông tin trong file /etc/php-fpm.d/www.conf như sau:

user = nginx
group = nginx
listen = /run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Khởi động dịch vụ php-fpm sau khi cài đặt và cấu hình php-fpm để tự động khởi động cùng hệ thống khi khởi động lại.

systemctl restart php-fpm.service
systemctl enable php-fpm.service

Bước 12 – Tạo ra file SSL để chuyển hướng nó sang HTTPs.

Tạo thư mục chứa SSL.

mkdir -p /etc/ssl/snipeit.hoanghd.com

Nếu bạn chưa biết lấy SSL thì hãy đọc lại bài https://wiki.hoanghd.com/openssl-la-gi/ và làm theo nó để lấy được 1 file SSL tự xác thực hoặc sử dụng đoạn SSL của mình ở dưới cho nhanh cũng được.

cat > /etc/ssl/snipeit.hoanghd.com/fullchain.pem << 'OEF'
-----BEGIN CERTIFICATE-----
MIIEXjCCA0agAwIBAgISA9J9cS0lyFI8sqVKPyvOmLgGMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMzAxMTMwODA5MTVaFw0yMzA0MTMwODA5MTRaMB0xGzAZBgNVBAMT
EnJlc3VtZS5ob2FuZ2hkLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABD/J
saTy8i3AK0KX1krHicysPFTa86UklWQhtZZnN8LGcAEI3N9gjooPedpfHU3tOPKS
keiiql+Ju/yP8hbf8rijggJMMIICSDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFIrK
Agu7mwx9biyqElDasVhV5HMcMB8GA1UdIwQYMBaAFBQusxe3WFbLrlAJQOYfr52L
FMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDovL3IzLm8ubGVu
Y3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5vcmcvMB0GA1Ud
EQQWMBSCEnJlc3VtZS5ob2FuZ2hkLmNvbTBMBgNVHSAERTBDMAgGBmeBDAECATA3
BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vY3BzLmxldHNlbmNy
eXB0Lm9yZzCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB2ALc++yTfnE26dfI5xbpY
9Gxd/ELPep81xJ4dCYEl7bSZAAABhapj8+EAAAQDAEcwRQIhAKOvHbdPcUWFi56s
qKwrWCs0e9hSqTbNvMbBv7xhMkoKAiADtjoT7JN9sVjeIpkL1Ma8N62b2Ck9zKzV
dRkOzP5clAB1AOg+0No+9QY1MudXKLyJa8kD08vREWvs62nhd31tBr1uAAABhapj
890AAAQDAEYwRAIgbIrao/X4ANKr8yh+MltCN6vC+cTNondn9IKtHyz7VcQCIEci
dPzm5mPaBIvBBKa7QfuYWcXdE229y0dUpsKoUBmcMA0GCSqGSIb3DQEBCwUAA4IB
AQB42Vf3q+uY3BWMObVZv3p5kdR7FTZWvUsiMB08467dlK1EbJJldwlWTxBPUGKt
Hp7sEf1ywVTSkDbXu1xbE1VJzqb/qzsVPflyyTkgzrzuG+OMgFgmMXhK7bTgfp95
riMapE5X5jcQsK113Etgq0HS4+5zeWIr3cRScZ/lbJs4BqfB9bSHopw/5C3Bc4iK
Jyvj8p8NW5BBmheMIWHlRfnuY6CbDf2sVsLwoBeq32ASABn3DiXjenU+btfILpUn
eT0tnAwDN06Z6eDFYX/JfcUdXwLX6Bb7lB/6JnVIcphj6qdAbkTGY5Il5BCInNNh
0D1PkVmacHoNxKo8veS3tzsf
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC
ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL
wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D
LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK
4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND
TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1
c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx
+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB
ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu
b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E
U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu
MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC
5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW
9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG
WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O
he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC
Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEXjCCA0agAwIBAgISA9J9cS0lyFI8sqVKPyvOmLgGMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMzAxMTMwODA5MTVaFw0yMzA0MTMwODA5MTRaMB0xGzAZBgNVBAMT
EnJlc3VtZS5ob2FuZ2hkLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABD/J
saTy8i3AK0KX1krHicysPFTa86UklWQhtZZnN8LGcAEI3N9gjooPedpfHU3tOPKS
keiiql+Ju/yP8hbf8rijggJMMIICSDAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFIrK
Agu7mwx9biyqElDasVhV5HMcMB8GA1UdIwQYMBaAFBQusxe3WFbLrlAJQOYfr52L
FMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDovL3IzLm8ubGVu
Y3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5vcmcvMB0GA1Ud
EQQWMBSCEnJlc3VtZS5ob2FuZ2hkLmNvbTBMBgNVHSAERTBDMAgGBmeBDAECATA3
BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vY3BzLmxldHNlbmNy
eXB0Lm9yZzCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB2ALc++yTfnE26dfI5xbpY
9Gxd/ELPep81xJ4dCYEl7bSZAAABhapj8+EAAAQDAEcwRQIhAKOvHbdPcUWFi56s
qKwrWCs0e9hSqTbNvMbBv7xhMkoKAiADtjoT7JN9sVjeIpkL1Ma8N62b2Ck9zKzV
dRkOzP5clAB1AOg+0No+9QY1MudXKLyJa8kD08vREWvs62nhd31tBr1uAAABhapj
890AAAQDAEYwRAIgbIrao/X4ANKr8yh+MltCN6vC+cTNondn9IKtHyz7VcQCIEci
dPzm5mPaBIvBBKa7QfuYWcXdE229y0dUpsKoUBmcMA0GCSqGSIb3DQEBCwUAA4IB
AQB42Vf3q+uY3BWMObVZv3p5kdR7FTZWvUsiMB08467dlK1EbJJldwlWTxBPUGKt
Hp7sEf1ywVTSkDbXu1xbE1VJzqb/qzsVPflyyTkgzrzuG+OMgFgmMXhK7bTgfp95
riMapE5X5jcQsK113Etgq0HS4+5zeWIr3cRScZ/lbJs4BqfB9bSHopw/5C3Bc4iK
Jyvj8p8NW5BBmheMIWHlRfnuY6CbDf2sVsLwoBeq32ASABn3DiXjenU+btfILpUn
eT0tnAwDN06Z6eDFYX/JfcUdXwLX6Bb7lB/6JnVIcphj6qdAbkTGY5Il5BCInNNh
0D1PkVmacHoNxKo8veS3tzsf
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC
ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL
wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D
LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK
4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND
TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1
c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx
+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB
ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu
b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E
U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu
MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC
5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW
9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG
WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O
he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC
Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgYVa/Edoza70iN7Cz
h1rS+1B3zf7dQ8zOurT5zaVLtaGhRANCAAQ/ybGk8vItwCtCl9ZKx4nMrDxU2vOl
JJVkIbWWZzfCxnABCNzfYI6KD3naXx1N7TjykpHooqpfibv8j/IW3/K4
-----END PRIVATE KEY-----
OEF

Mình copy một file fullchain.pem thành file privkey.pem, nếu bạn hiểu config của mình ở dưới thì cái này nhìn cho nó vui chứ cũng chẳng quan trọng lắm.

cp /etc/ssl/snipeit.hoanghd.com/fullchain.pem /etc/ssl/snipeit.hoanghd.com/privkey.pem

Bước 13 – Cấu hình Nginx để Snipe-IT có thể sử dụng nó làm Webserver.

Chạy script dưới để tạo file /etc/nginx/conf.d/snipeit.conf, file fullchain.pem và privkey.pem mình truyền xuống đoạn config dưới như bạn đã thấy.

Bài https://wiki.hoanghd.com/huong-dan-can-bang-tai-webserver-su-dung-nginx-va-keepalive/ mình nói khá kỹ về cấu hình Nginx, các bạn có thể đọc lại cho hiểu chứ mình không giải thích lại ở phần này nữa vì nó dài dòng lắm.

cat > /etc/nginx/conf.d/snipeit.conf << 'OEF'
server {
    listen 80;
    server_name snipeit.hoanghd.com;
    proxy_redirect off;
    root /var/www/snipe-it/public;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name snipeit.hoanghd.com;
    ssl_certificate /etc/ssl/snipeit.hoanghd.com/fullchain.pem;
    ssl_certificate_key /etc/ssl/snipeit.hoanghd.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    root /var/www/snipe-it/public;
    index index.php index.html index.htm;

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

    location ~ \.php$ {
        try_files $uri $uri/ =404;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
OEF

Chạy lệnh nginx -t để kiểm tra lỗi cú pháp, nếu kết quả trả về như dưới coi như là bạn đã làm đúng.

$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nếu cấu hình đã đúng thì sử dụng lệnh dưới để reload lại cấu hình Nginx.

sudo nginx -s reload

Bạn cũng có thể khởi động lại Nginx.

sudo systemctl restart nginx.service

Và kiểm tra trạng thái của Nginx bằng lệnh systemctl status nginx.service.

$ sudo systemctl status nginx.service
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-07-28 12:39:19 UTC; 34min ago
  Process: 7532 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 7529 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 7527 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 7534 (nginx)
   CGroup: /system.slice/nginx.service
           ├─7534 nginx: master process /usr/sbin/nginx
           ├─7535 nginx: worker process
           ├─7536 nginx: worker process
           ├─7537 nginx: worker process
           └─7538 nginx: worker process

Jul 28 12:39:19 localhost systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jul 28 12:39:19 localhost nginx[7529]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jul 28 12:39:19 localhost nginx[7529]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jul 28 12:39:19 localhost systemd[1]: Started The nginx HTTP and reverse proxy server.

Bước 14 – Kiểm tra kết quả.

Sử dụng trình duyệt login vào domain https://snipeit.hoanghd.com/ mà bạn đã khai báo ở các bước trên chúng ta có kết quả.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories