Nginx Proxy manager là công cụ hỗ trợ quản trị Nginx thông qua giao diện đồ họa. Nginx proxy manager cho phép các bạn cấu hình nhanh Nginx Server qua giao diện thân thiện bắt mắt.
Tổng quan
Nginx (phát âm engine-ex) là bộ mã nguồn mở nối tiếng, được sử dụng như Web Server (HTTP Server) hoặc reverse proxy, hay làm proxy server cho các dịch vụ IMAP/POP3, ngoài ra nginx còn được sử dụng làm HTTP Cache server, Load balancer. Nginx được thiết kế với hiệu năng xử lý cao, ổn định, nhiều tính năng, cấu hình đơn giản, sử dụng ít tài nguyên hệ thống. Nginx xuất bản năm 2011 và được phát triển bởi Igor Sysoev.
Nginx Proxy manager là công cụ hỗ trợ quản trị Nginx thông qua giao diện đồ họa. Nginx proxy manager cho phép các bạn cấu hình nhanh Nginx Server qua giao diện thân thiện bắt mắt.
Chuẩn bị
Phân hoạch địa chỉ
Mô hình triển khai
Triển khai
Phần 1: Thực hiện trên node Apache Web Server
Tắt SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config init 6
Bước 1: Cài đặt Apache Web Server
yum install httpd -y echo '<h1>Chào mừng tới Blog Onet</h1>' > /var/www/html/index.html
Bước 2: Khởi động dịch vụ
systemctl start httpd systemctl enable httpd
Bước 3: Kiểm tra
curl -I 33.5.6.15 curl 33.5.6.15
Kết quả
[root@apache-webserver ~]# curl -I 33.5.6.15HTTP/1.1 200 OKDate: Wed, 14 Aug 2019 16:51:26 GMTServer: Apache/2.4.6 (CentOS)Last-Modified: Tue, 13 Aug 2019 17:11:35 GMTETag: "2a-59002bb97fe20"Accept-Ranges: bytesContent-Length: 42Content-Type: text/html; charset=UTF-8 [root@apache-webserver ~]# curl 33.5.6.15 Chào mừng tới Blog Onet
Bước 4: Cấu hình Firewalld
firewall-cmd --zone=public --add-service=http firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --reload
Kiểm tra
firewall-cmd --list-all
Kểt quả
[root@apache-webserver ~]# firewall-cmd --list-all public target: default icmp-block-inversion: no interfaces: sources: services: ssh dhcpv6-client http ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Phần 2: Thực hiện trên node Nginx Proxy Manager
Lưu ý: - Mình sẽ triển khai Nginx Proxy Manager qua phiên bản đã được đóng gói thành Container. Đồng thời sẽ sử dụng Docker và Docker Compose để khởi tạo dịch vụ
Bước 1: Cài đặt Docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker
Kiểm tra dịch vụ Docker
sudo systemctl status docker sudo docker run hello-world
Kết quả
[root@nginx-proxy ~]# sudo systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2019-08-13 22:44:26 +07; 3min 11s ago Docs: https://docs.docker.com Main PID: 5272 (dockerd) CGroup: /system.slice/docker.service └─5272 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Hint: Some lines were ellipsized, use -l to show in full. [root@nginx-proxy ~]# sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
Bước 2: Cài đặt Docker Compose
curl -O https://raw.githubusercontent.com/sitespeedio/sitespeed.io/master/docker/docker-compose.yml sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose --version
Kết quả
[root@nginx-proxy ~]# docker-compose --version docker-compose version 1.24.1, build 4667896b
Bước 3: Cài đặt Nginx Proxy Manager
Bước 3.1: Cài đặt Git
yum install git -y
Bước 3.2: Clone repo Nginx Proxy Manager
git clone https://github.com/jc21/nginx-proxy-manager.git
Kết quả
[root@nginx-proxy ~]# git clone https://github.com/jc21/nginx-proxy-manager.git Cloning into 'nginx-proxy-manager'… remote: Enumerating objects: 14, done. remote: Counting objects: 100% (14/14), done. remote: Compressing objects: 100% (14/14), done. remote: Total 3446 (delta 1), reused 4 (delta 0), pack-reused 3432 Receiving objects: 100% (3446/3446), 1.39 MiB | 956.00 KiB/s, done. Resolving deltas: 100% (2161/2161), done.
Bước 3.3: Khởi động Nginx Proxy Manager bằng docker compose
cd nginx-proxy-manager/doc/example/ docker-compose up -d
Kết quả
[root@nginx-proxy example]# docker-compose up -d Creating example_db_1 ... done Creating example_app_1 ... done
Bước 3.4: Kiểm tra
docker ps
Kết quả
[root@nginx-proxy example]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f5c6ab12d2be jc21/nginx-proxy-manager:latest "/init" About a minute ago Up About a minute (unhealthy) 0.0.0.0:80-81->80-81/tcp, 0.0.0.0:443->443/tcp, 9876/tcp example_app_1 6ae6119c1d5d mariadb:latest "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp example_db_1
Kiểm tra giao diện Web
Để kiểm tra, mình sẽ truy cập vào Port 80 và 81. Trong đó Port 80 là Port của Nginx Proxy Server, Port 81 là Port của Nginx Proxy Manager
Kiểm tra Port 80, truy cập http://10.10.11.64/
Kiểm tra Port 81, mình sẽ truy cập http://10.10.11.64:81/. Tiếp theo mình sẽ truy cập trang quản trị của Nginx Proxy Manager và cấu hình dịch vụ.
Truy cập với mật khẩu mặc định
Email: [email protected] Password: changeme
Sau khi đăng nhập thành công, chúng ta thực hiện thao tác cập nhật thông tin
Tiếp tục cập nhật mật khẩu
Màn quản trị tài khoản
Truy cập màn tạo mới Proxy Host
Tiếp theo, chọn “Add Proxy Host”, thêm mới thông tin máy chủ Apache Web Server.
Phần 3: Thực hiện trên node Ubuntu 18.04
Cấu hình file /etc/host (Sử dụng quyền root)
echo '10.10.11.64 proxy.lab.com' > /etc/hosts
Kểt quả
Truy cập Web với đường dẫn proxy.lab.com
Tổng kết
Tới đây, mình đã hướng dẫn các bạn triển khai Nginx Proxy Manager để quản trị, cấu hình Proxy cho dịch vụ Nginx thông qua giao diện thân thiện, dễ sử dụng. Cám ơn các bạn đã quan tâm. Ngoài ra bạn có thể tham khảo bài viết tổng quan về Nginx Proxy Manager bên dưới.
Thân ái và hẹn gặp lại.