Nginx Proxy Manager dễ dàng quản lý reverse proxy

Nếu ai sử dụng các dịch vụ lưu trữ tại gia đình thì công cụ Nginx Proxy Manager này trở nên khá hữu ích . mới đây tôi mới sử dụng đến và thấy khá dễ dàng quản lý các dịch vụ tại nhà tôi . về cơ bản NPM ( Nginx Proxy Manager) sẽ quản lý tập trung tất cả các dịch vụ có giao diện web của bạn tại 1 giao diện đơn giản và dễ thiết lập SSL miễn phí như Let’s Encrypt hay cloudflare , hay hơn nữa bạn có thể dử dụng ssl với các tên miền miễn phí như duckdns …

Tính năng chính

  • Giao diện quản trị đẹp và an toàn dựa trên Tabler
  • Dễ dàng tạo miền chuyển tiếp, chuyển hướng, luồng và máy chủ 404 mà không cần biết gì về Nginx
  • SSL miễn phí bằng Let’s Encrypt hoặc cung cấp chứng chỉ SSL tùy chỉnh của riêng bạn
  • Danh sách truy cập và Xác thực HTTP cơ bản cho máy chủ của bạn
  • Cấu hình Nginx nâng cao có sẵn cho người dùng cấp cao
  • Quản lý người dùng, quyền và nhật ký kiểm tra
Giao diện web của Nginx Proxy manager

Nếu như trong nhà bạn có đến 2 hoặc 3 dịch vụ chạy chung 1 cổng mà bạn lại muốn mở cổng đó để truy cập bên ngoài ví dụ như ai dùng tvheadend thì NPM là giải pháp dễ dàng vì bạn không cần phải mở cổng cho các dịch vụ đó mà chỉ cần mở cổng 80 và 443 của NPM và thiết lập Proxy vào các dịch vụ của bạn với từng tên miền .

Các cài đặt NPM trên docker chi tiết tại đây https://nginxproxymanager.com/setup/ mã nguồn mở tại https://github.com/jc21/nginx-proxy-manager

Đây là các bước để cài đặt NPM trên docker

mkdir nginx

cd nginx

nano docker-compose.yml

chúng ta soạn nội dung cho file docker-compose.yml như sau

version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      # Public HTTP Port:
      - '80:80'
      # Public HTTPS Port:
      - '443:443'
      # Admin Web Port:
      - '81:81'
    environment:
      # These are the settings to access your db
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # If you would rather use Sqlite uncomment this
      # and remove all DB_MYSQL_* lines above
      # DB_SQLITE_FILE: "/data/database.sqlite"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db
  db:
    image: 'jc21/mariadb-aria:latest'
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

sau đó chạy

docker-compose up -d

Sau khi hoàn thành để truy cập vào http://you-ip:81 để vào giao diện quản trị

Default Administrator User

Email:    [email protected]
Password: changeme
Giới thiệu manhhung 61 bài viết
Nguyễn Văn Đại nick name hungphutho , manhhung . Admin gocmobile.net và daivietpda