Technical Anshu Trang chủ > Hướng dẫn > Cài đặt Trình quản lý proxy Nginx
🐳 Proxy ngược của Docker

Cài đặt Trình quản lý proxy Nginx - Hướng dẫn thiết lập 2 phút

Dịch vụ của bạn hiện đang hoạt động ở các địa chỉ xấu như 192.168.1.50:8080. Nginx Proxy Manager biến chúng thành những cái tên rõ ràng như app.yourdomain.com với HTTPS miễn phí - được cài đặt bằng một tệp Docker Compose và được quản lý từ bảng điều khiển web đơn giản thay vì tệp cấu hình viết tay.

✍️ Technical Anshu🐳 Docker Compose🎧 Multi-Language Audio
Cài đặt Trình quản lý proxy Nginx - Hướng dẫn thiết lập 2 phút
🎧 Multi-Language Audio: Video player [Settings] (⚙️) ➔ [Audio Track]

📑Các chương

  1. Công dụng của proxy ngược - một cửa cho tất cả các dịch vụ của bạn
  2. Những gì bạn cần trước khi bắt đầu - Docker, miền và các cổng có thể truy cập
  3. Trỏ DNS miền của bạn tới máy chủ trước khi cài đặt bất cứ thứ gì
  4. Tạo thư mục và tệp docker-compose.yml
  5. Khởi động Trình quản lý proxy Nginx bằng một lệnh
  6. Đăng nhập lần đầu - bước tài khoản quản trị viên ai cũng mắc lỗi
  7. Tạo máy chủ proxy đầu tiên của bạn, theo từng trường
  8. Nhận chứng chỉ Lets Encrypt HTTPS miễn phí và bật Force SSL

📋 Tổng quan & Hướng dẫn từng bước

1

Những gì bạn cần trước khi bắt đầu

Ba thứ phải tồn tại trước khi Nginx Proxy Manager (NPM) có thể hoạt động. Đầu tiên, máy chủ Linux hoặc PC có Docker và Docker Compose đã được cài đặt và hoạt động - NPM chạy dưới dạng vùng chứa chứ không phải như một chương trình thông thường. Thứ hai, một tên miền có DNS mà bạn có thể chỉnh sửa vì mọi dịch vụ đều có tên miền phụ riêng. Thứ ba, bộ định tuyến hoặc tường lửa đám mây của bạn phải có khả năng chuyển tiếp cổng 80 và 443 tới máy này.

✨ Giới thiệu về "2 phút" trong tiêu đề: quá trình khởi động vùng chứa thực sự nhanh chóng - nhưng chỉ khi Docker đã được cài đặt và quá trình chuẩn bị trong hướng dẫn này đã hoàn tất. Trên máy mới, hãy dành thời gian thích hợp cho các bước thiết lập, DNS và chứng chỉ; tổng số trung thực dài hơn hai phút.
⚠️ Trên kết nối gia đình phía sau CGNAT, tính năng chuyển tiếp cổng hoàn toàn không thể hoạt động - không có cài đặt nào bên trong NPM khắc phục được điều đó. Sau đó, các tùy chọn trung thực là IP công cộng/tĩnh từ ISP của bạn, VPS thuê nhỏ hoặc công cụ đường hầm thay thế. Đừng bỏ qua việc kiểm tra này: một nửa trong số tất cả các câu chuyện "NPM không hoạt động" thực sự là những câu chuyện "các cổng không bao giờ đến được máy chủ".
2

Trỏ DNS miền của bạn tới máy chủ trước

NPM định tuyến lưu lượng truy cập theo tên và Lets Encrypt chỉ cấp chứng chỉ cho những tên có thể trỏ đến máy của bạn - vì vậy tên phải được phân giải trước khi bạn xây dựng bất kỳ thứ gì trên đó. Tại công ty đăng ký hoặc máy chủ DNS của bạn, hãy thêm Bản ghi A: Tên chỉ là từ tên miền phụ (ví dụ: ứng dụng) và Giá trị là địa chỉ IP công cộng của máy chủ của bạn. Mỗi dịch vụ đều có bản ghi riêng và tất cả chúng đều có thể trỏ đến cùng một IP - NPM sẽ phân tách các dịch vụ sau đó theo tên. Đặt TTL ngắn chẳng hạn như 300 giây trong khi kiểm tra để lỗi sẽ mờ dần sau vài phút thay vì hàng giờ.

Hãy chứng minh điều đó trước khi bạn tiếp tục: kiểm tra xem tên đó có phân giải thành IP công cộng của bạn từ mạng bên ngoài hay không (ví dụ: từ điện thoại của bạn đã tắt Wi-Fi). Yêu cầu chứng chỉ chống lãng phí DNS bị hỏng Cho phép mã hóa các lần thử và các lỗi lặp lại có thể giới hạn tốc độ của bạn trong nhiều giờ. Thứ tự quan trọng: DNS đầu tiên, máy chủ proxy thứ hai, chứng chỉ thứ ba.

3

Tạo thư mục và tệp soạn thảo

Tạo một thư mục cho NPM trên máy chủ và lưu tệp bên dưới dưới dạng docker-compose.yml. Tập tin duy nhất này là cài đặt hoàn chỉnh. Tên hình ảnh là hình ảnh cộng đồng chính thức. Cổng 80 và 443 là cửa công cộng, cổng 81 là bảng quản trị và hai ổ đĩa là nơi tồn tại toàn bộ thiết lập của bạn: ./data chứa cơ sở dữ liệu với tất cả máy chủ proxy của bạn và ./letsencrypt chứa chứng chỉ của bạn. Mất hai thư mục đó và bạn mất toàn bộ thiết lập - hãy sao lưu chúng khi mọi thứ đang chạy.

docker-compose.yml
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Dòng khởi động lại: trừ khi bị dừng tự động đưa NPM trở lại sau khi khởi động lại.

4

Bắt đầu Trình quản lý proxy Nginx

Từ bên trong thư mục đó, hãy chạy lệnh bắt đầu. Docker tải xuống hình ảnh và khởi động vùng chứa ở chế độ nền.

Terminal
docker compose up -d

Kiểm tra nó đang chạy:

Terminal
docker ps

Bạn sẽ thấy vùng chứa được liệt kê với các cổng 80, 443 và 81. Trên máy chủ nhỏ, lần khởi động đầu tiên mất một hoặc hai phút trong khi cơ sở dữ liệu được tạo. Nếu vùng chứa tiếp tục khởi động lại, nhật ký sẽ hiển thị lý do bằng ngôn ngữ đơn giản:

Terminal
docker compose logs

Chín trong số mười lần vòng lặp khởi động lại là một cổng đã được sử dụng bởi một thứ khác trên máy chủ - thường là một máy chủ web cũ vẫn đang chạy.

5

Đăng nhập lần đầu - Bảo mật tài khoản quản trị ngay lập tức

Mở bảng quản trị trong trình duyệt trên mạng của riêng bạn:

Browser Address Bar
http://your-server-ip:81

Làm điều này trong phút đầu tiên. Tùy thuộc vào bản dựng, NPM yêu cầu bạn thay thế thông tin chi tiết về quản trị viên đăng nhập lần đầu quen thuộc bằng email của chính bạn và mật khẩu mạnh hoặc - trên các bản dựng mới hơn không có tài khoản mặc định - người đầu tiên mở trang quản trị sẽ tạo quản trị viên. Dù theo cách nào thì quy tắc đều giống nhau: thiết lập tài khoản quản trị viên của riêng bạn ngay khi vùng chứa khởi động, trước khi tạo bất kỳ nội dung nào khác và sử dụng hộp thư thực - email NPM giải quyết các vấn đề về chứng chỉ.

⚠️ Không bao giờ để cổng 81 có thể truy cập công khai trong khi bạn "hoàn thành nó sau". Bất kỳ ai trên internet tìm thấy bảng điều khiển trước tiên đều sở hữu proxy của bạn. Chỉ giữ bảng quản trị trên mạng của riêng bạn.
6

Tạo máy chủ proxy đầu tiên của bạn

Trong NPM mở Máy chủ → Máy chủ proxy → Thêm máy chủ proxy và điền vào biểu mẫu dưới dạng một câu - "tên này sẽ chuyển đến dịch vụ nội bộ đó":

Tên miền: app.yourdomain.com - tên công khai chính xác từ Bước 2, tên này phải được phân giải tới máy chủ của bạn.
Lược đồ: http dành cho hầu hết các ứng dụng gia đình và văn phòng. Lược đồ mô tả kết nối giữa NPM và dịch vụ nội bộ chứ không phải những gì khách truy cập sử dụng - NPM xử lý mã hóa công khai ngay tại cửa. Chỉ chọn https ở đây khi chính ứng dụng nội bộ phân phối HTTPS.
Chuyển tiếp tên máy chủ / IP: địa chỉ nội bộ của dịch vụ, ví dụ 192.168.1.50.
Cổng chuyển tiếp: cổng mà dịch vụ thực sự lắng nghe, ví dụ: 8080 - không phải 80 hay 443; đó là cánh cửa của NPM, không phải của dịch vụ.

Bật Chặn các hành vi khai thác phổ biến rồi Lưu. Kiểm tra ngay lập tức bằng cách mở tên trong trình duyệt - lý tưởng nhất là từ điện thoại của bạn đã tắt Wi-Fi, để bạn kiểm tra đường dẫn công cộng thực sự.

✅ 502 Bad Gateway từ NPM là một biển chỉ dẫn, không phải lỗi: nó có nghĩa là thế giới bên ngoài đã tiếp cận NPM một cách hoàn hảo và chỉ bước nhảy nội bộ cuối cùng - tên máy chủ hoặc cổng - là sai. Hãy sửa trường đó chứ không phải toàn bộ thiết lập. Thêm một bẫy nữa: nếu dịch vụ chạy trong một vùng chứa Docker khác, localhost bị sai (bên trong vùng chứa của NPM, localhost có nghĩa là chính NPM) - sử dụng IP LAN của máy chủ với cổng đã xuất bản hoặc đặt cả hai vùng chứa trên cùng một mạng Docker và sử dụng tên vùng chứa.
7

Nhận chứng chỉ HTTPS miễn phí cho phép mã hóa

Chỉ thực hiện việc này sau khi máy chủ đơn giản ở Bước 6 đã hoạt động - HTTPS trên máy chủ bị hỏng sẽ cung cấp cho bạn một máy chủ bị hỏng có chứng chỉ và hai lần địa điểm để tìm lỗi. Mở cùng một máy chủ proxy, đi tới tab SSL, đặt Chứng chỉ SSL thành Yêu cầu chứng chỉ SSL mới, bật Bắt buộc SSL và Hỗ trợ HTTP/2, đồng ý với Điều khoản dịch vụ của Lets Encrypt và Lưu. Tải lại trang web - trình duyệt bây giờ sẽ hiển thị ổ khóa trên https.

Cách hoạt động: Lets Encrypt chứng minh bạn kiểm soát tên bằng cách yêu cầu máy chủ của bạn, qua internet công cộng trên cổng 80, hiển thị mã thông báo một lần (thử thách HTTP-01). Đó là lý do tại sao DNS trỏ đến bạn và cổng 80 có thể truy cập là không thể thương lượng - một trong hai không thành công và yêu cầu không thành công, đồng thời lỗi nằm ở quá trình thiết lập, không bao giờ xảy ra ở Lets Encrypt. Buộc SSL tự động chuyển hướng mọi khách truy cập http sang https; không có nó, cánh cửa không được mã hóa vẫn mở bên cạnh cánh cửa được mã hóa.

✔️ Chứng chỉ tồn tại trong 90 ngày và NPM tự động gia hạn chúng, thường là khoảng một tháng trước khi hết hạn, sử dụng cùng một bằng chứng cổng-80. Nếu quá trình gia hạn không thành công, trước tiên hãy kiểm tra các nguyên nhân nhàm chán: DNS đã bị thay đổi, chuyển tiếp bộ định tuyến đã bị xóa hoặc cổng 80 bị chặn. Chỉ bật HSTS sau khi dịch vụ được giải quyết và việc gia hạn được chứng minh - đó là một lời hứa mạnh mẽ mà các trình duyệt sẽ ghi nhớ trong nhiều tháng.

🏷️Biến và từ khóa tìm kiếm chủ đề

🔍 Nginx Proxy Manager 🔍 Reverse Proxy 🔍 Docker Compose 🔍 Lets Encrypt 🔍 Free HTTPS 🔍 Proxy Host 🔍 TechnicalAnshu 🔍 Self Hosting 🔍 Subdomain Setup 🔍 Port 80 443 81 🔍 Force SSL 🔍 Home Server
🎙️ Bản ghi đầy đủ - nhấn để mở rộng

__TOK_34__

__TOK_35__

__TOK_36__

❓ Câu hỏi thường gặp

Hướng dẫn này có miễn phí 100% để làm theo không?

__TOK_37__

Người mới bắt đầu có thể làm theo hướng dẫn này không?

__TOK_38__

Tôi có thể đặt câu hỏi ở đâu nếu gặp khó khăn?

__TOK_39__

🚀 Xem hướng dẫn đầy đủ trên YouTube

__TOK_40__

__TOK_41__

➡️ Xem toàn bộ video
Hướng dẫn này dựa trên video Cài đặt Nginx Proxy Manager của Technical Anshu • Bị mắc kẹt ở bước nào? Hỏi trong phần bình luận video - bạn sẽ nhận được trợ giúp ở đó 🙏