Hướng dẫn cài đặt server livestreming bằng nginx

Máy chủ Web (Web Server) là máy tính mà trên đó cài đặt phần mềm phục vụ web, đôi khi người ta cũng gọi chính phần mềm đó là web server. Tất cả các web server đều hiểu và chạy được các file *.htm và *.html. Tuy nhiên mỗi web server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như llS của Microsoft dành cho *.asp, *.aspx…; Apache, Nginx dành cho *.php…; Sun Java system web server của SUN dành cho *.jsp…Trong bài viết này sẽ hướng dẫn người dùng tạo webserver sử dụng Nginx

1. Khái niệm về Nginx

Nginx là 1 máy chủ reverse proxy mã nguồn mở cho các giao thức HTTP, HTTPS, SMTP, POP3 và IMAP, cũng như là 1 máy chủ cân bằng tải (load balancer), HTTP cache và web Không giống với các máy chủ web truyền thống, Nginx không dựa trên luồn (thread) để xử lý yêu cầu. Thay vào đó, nó sử dụng 1 kiến trúc bất đồng bộ hướng sự kiện linh hoạt . Kiến trúc này sử dụng ít, nhưng quan trọng hơn, là lượng bộ nhớ có thể dự đoán khi hoạt động Nginx tập trung vào việc phục vụ số lượng kết nối đồng thời lớn (high concurrency), hiệu suất cao và sử dụng bộ nhớ thấp. Nginx được biết đến bởi sự ổn định cao, nhiều tính năng, cấu hình đơn giản và tiết kiệm tài nguyên

2. Mô hình lab

Chúng ta sẽ tiến hành cài đặt webserver sử dụng Nginx trên server cài đặt OS Centos 7.6.1810

Địa chỉ IP máy chủ: 10.10.11.162

Cài đặt: Cài đặt và cấu hình nginx kết hợp php

3. Tiến hành cài đặt

Chúng ta có thế update cho OS bằng lệnh

Sau khi reboot server online chúng ta truy cập lại ssh vào server với quyền root Chúng ta truy cập vào đường dẫn repo

Tạo file repo cho nginx

cat >> nginx.repo << "EOF"
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
EOF

3.1 Cài đặt bằng lệnh Yum

Start service

3.2 Cài đặt bằng Souce

Cài đặt các package cần thiết để compile Nginx từ source

yum groupinstall " Development Tools"  -y
yum install zlib-devel pcre-devel openssl-devel -y
yum install epel-release -y

Cài đặt thêm các thành phần phụ thuộc của nginx

yum install perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel -y

Tiến hành download source nginx tại trang https://nginx.org/download/

wget https://nginx.org/download/nginx-1.15.0.tar.gz
tar -xzf nginx-1.15.0.tar.gz

Truy cập vào đường dẫn chứa source nginx vừa giải nén

Tiến hành config từ script

./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx
make
make install

Tạo user và tiến hành phân quyền owner cho thư mục

useradd nginx
chown -R nginx:nginx /etc/nginx/

Tạo file để chạy lệnh mỗi khi stop hoặc start service nginx

cat >> /usr/lib/systemd/system/nginx.service << "EOF"
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/conf/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
EOF

Start Service nginx

systemctl start nginx
systemctl enable nginx

Truy cập vào đường dẫn chứa file config của nginx

Backup lại file nginx.conf

mv nginx.conf nginx.conf.bak

Sửa file cấu hình Nginx

cat >> nginx.conf << "EOF"
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    
# tcp_nopush     on;
    keepalive_timeout  65;
    
# gzip  on;
    include /etc/nginx/conf.d/*.conf;
}
EOF

Tạo thư mục chứa các file cấu hình virtualhost cho các website

yum groupinstall " Development Tools"  -y
yum install zlib-devel pcre-devel openssl-devel -y
yum install epel-release -y

0

3.3 Tiến hành cài đặt php

yum groupinstall " Development Tools"  -y
yum install zlib-devel pcre-devel openssl-devel -y
yum install epel-release -y

1

Cấu hình php-fpm

yum groupinstall " Development Tools"  -y
yum install zlib-devel pcre-devel openssl-devel -y
yum install epel-release -y

2

Truy cập vào đường dẫn chứa code chung của các website và tạo thư mục riêng chứa code của site thangth.name.vn

yum groupinstall " Development Tools"  -y
yum install zlib-devel pcre-devel openssl-devel -y
yum install epel-release -y

3

Truy cập đường dẫn chứa các file cấu hình của virtualhost

Backup file cấu hình default

yum groupinstall " Development Tools"  -y
yum install zlib-devel pcre-devel openssl-devel -y
yum install epel-release -y

4

Tạo virtualhost trong Nginx

yum groupinstall " Development Tools"  -y
yum install zlib-devel pcre-devel openssl-devel -y
yum install epel-release -y

5

Restart lại service nginx

Trong bài viết này sử dụng domain thangth.name.vn để cấu hình virtualhost, người dùng cần thay đổi tên domain cũng như đường dẫn chứa code phù hợp Truy cập đường dẫn chứa code của site thangth.name.vn

yum groupinstall " Development Tools"  -y
yum install zlib-devel pcre-devel openssl-devel -y
yum install epel-release -y

6

Chúng ta tiến hành tạo 1 file info.php trong thư mục /var/www/html/thangth.name.vn để kiểm tra website