λͺ©. 7μ›” 31st, 2025

🌟 What is Nginx Proxy Manager?

The Nginx Proxy Manager (NPM) is an open source reverse proxy management tool based on the web server Nginx. It allows you to manage domains, SSL certificates, redirects, and more with an intuitive web UI instead of complicated Nginx configuration files, making it easy to use even for DevOps beginners!

—.

πŸ›  Required Preparations

  1. install Docker & Docker Compose.
    # Ubuntu example
    sudo apt update && sudo apt install docker.io docker-compose
  2. Own a domain (required for Let’s Encrypt SSL)
  3. open port 80/443 (allows HTTP/HTTPS traffic)

—]

🐳 Create Docker Compose file

Create a docker-compose.yml file and add the following content to it:

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: npm
    restart: unless-stopped
    ports:
      - '80:80' # HTTP
      - '443:443' # HTTPS
      - '81:81' # Admin UI ports
    volumes:
      - ./data:/data # Configuration data.
      - ./letsencrypt:/etc/letsencrypt # SSL certificate
    environment:
      DB_SQLITE_FILE: "/data/database.sqlite" # DB storage path.
      DISABLE_IPV6: 'true' # Disable IPv6 (optional)

πŸ” Setting description.

  • volumes:
    • ./data: NPM settings/DB storage path (create in current directory on host)
    • ./letsencrypt: Let’s Encrypt certificate auto-save location
  • ports:

—.

πŸš€ Running and initializing the service

  1. Run the container.

    docker-compose up -d
  2. access the web UI Open http://:81 in a browser: bash docker-config up -d 3. β†’ Initial account: admin@example.com / Password: changeme NPM login screen

  3. change your password Be sure to change it on your first login! (Settings β†’ Users)

—]

πŸ”§ Reverse proxy setup example

**Hypothetical: expose your WordPress site (wordpress:80) as blog.mydomain.com

  1. **Add Proxy Hosts
    • Click `Hosts β†’ Proxy Hosts β†’ Add Proxy Host
  2. Set Domain & Target** Setup Click on “` πŸ’‘ Details tab
    • Domain Names: blog.mydomain.com
    • Scheme: http
    • Forward Hostname/IP: wordpress (Container Name)
    • Port: 80
  3. Apply SSL certificate.
    πŸ’‘ SSL tab
     - SSL Certificate: Request a new SSL Certificate
     - Email: Your email
     - Force SSL β˜‘οΈ

    β†’ Let’s Encrypt will automatically issue the certificate!

—]

βš™οΈ How to utilize advanced features

1. Access Control (Access Lists) 1.

  • IP whitelist/blacklist can be set
  • Create in Access → Access Lists and connect to Proxy Host

2. Redirects

  • Automatically switch http://mydomain.com β†’ https://www.mydomain.com
    πŸ’‘ Add Redirection Hosts
     - Source: mydomain.com
     - Target: https://www.mydomain.com

3. **Streaming support (WebSocket, etc.)

   # Add to the Advanced tab
   location / {
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
   }

—]

🚨 Troubleshooting.

  • 403 Forbidden: β†’ Check target service’s firewall to allow NPM container IPs
  • SSL Issuance Failed**: β†’ Verify that the domain DNS is resolved correctly to the server IP β†’ Check ./letsencrypt volume permissions (chmod 755 letsencrypt)
  • DB error:
    
    # Regenerate data
    docker-compose down
    rm -rf data
    docker-compose up -d
    ```bash

—]

βœ… Summarizing the benefits of NPM

Features Benefits
πŸšͺ Reverse Proxy Manage multiple domains/services on one server
πŸ” SSL automation Free HTTPS with Let’s Encrypt
πŸ–₯️ UI Management No CLI required, beginner-friendly
Monitoring Check traffic/error logs in real time

—]

🎯 Closing thoughts

Nginx Proxy Manager is an innovative tool that simplifies complex Nginx configuration into a GUI. It can be deployed in 5 minutes with Docker Compose and supports free SSL auto-renewal, making it a must-have for running web services! Create a Docker Compose file today and open the world of reverse proxying ✨.

> πŸ“š Official Documentation: nginxproxymanager.com > πŸ’¬ If you run into problems: GitHub Issues or utilizing the community is highly recommended! D

λ‹΅κΈ€ 남기기

이메일 μ£Όμ†ŒλŠ” κ³΅κ°œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•„μˆ˜ ν•„λ“œλŠ” *둜 ν‘œμ‹œλ©λ‹ˆλ‹€