Giỏ hàng hiện tại chưa có sản phẩm nào!
Web server trên Máy tính bảng đơn
Định nghĩa
Máy chủ web (tiếng Anh: Web server) dùng để chỉ phần mềm để tạo ra một máy chủ, hoặc phần cứng dành riêng để chạy các phần mềm hoặc trang web của máy chủ, để từ đó có thể cung cấp các dịch vụ World Wide Web. Một máy chủ web xử lý các yêu cầu từ các client (trong mô hình server – client) thông qua giao thức HTTP và một số giao thức liên quan khác.
Máy chủ web
Để truy cập một trang web hay ứng dụng chúng ta sẽ trải qua các quá trình sau đây.
- DNS server phân giải tên miền vidu.com thành địa chỉ IP của tên miền
- Trình duyệt web gửi yêu cầu theo giao thức HTTP/HTTPS tới địa chỉ IP
- Máy chủ web xử lý yêu cầu và trả lại phản hồi cho máy khách
Quá trình truyền tải thông tin giữa máy khách và máy chủ có thể qua nhiều máy trung gian gọi là proxy.
Một vài phần mềm máy chủ web
- nginx – nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server
- Apache – The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows
- IIS – Internet Information Services (IIS) for Windows® Server is a flexible, secure and manageable Web server for hosting anything on the Web. ???
- LiteSpeed – LiteSpeed Web Server is compatible with all popular Apache features including its Rewrite Engine and ModSecurity, and can load Apache configuration files directly.
Và nhiều phần mềm máy chủ khác nữa. Bạn có thể tham khảo thêm tại đây.
Ở đây chúng tôi sẽ sử dụng Caddy vì cấu hình Caddyfile khá đơn giản dễ hiểu. Caddy cũng có thể làm Reverse Proxy hoặc HTTP server.
Caddy – Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS.
Mô hình
HTTP Server → Proxy Server → Router → CloudFlare → Máy khách.
- HTTP server: Nginx chạy web tĩnh hoặc web động như WordPress, Joomla..
- Proxy server: Caddy chạy reverse proxy về các ứng dụng HTTP trong mạng nội bộ, Caddy listen ở port 80 và 443 để tự động đăng ký Chứng chỉ SSL/TLS, phục vụ ở giao thức HTTPS.
- Router: NAT port 80/443 về IP máy chủ nội bộ
- Cloudflare: Proxy lưu lượng qua Cloudflare để bảo vệ máy chủ của bạn, cập nhật Dynamic DNS trong trường hợp bạn không có IP tĩnh.
Thiết bị
- Máy tính bảng đơn Orange Pi Zero 3
- Router OPNsense Minipc
Phần mềm
Do Orange Pi Zero 3 hỗ trợ Docker và kiến trúc ARM64 khá phổ biến nên chúng tôi sẽ triển khai bằng Docker.
- Docker – Use containers to Build, Share and Run your applications
- Godns – A dynamic DNS client tool supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc, written in Go.
- WordPress – Blog Tool, Publishing Platform, and CMS
- Caddy – The Ultimate Server with Automatic HTTPS
Triển khai
Router OPNSense
Mở port IPv6 80 / 443.
Dưới đây là ví dụ cho IPv6 port 80 (rủi ro bảo mật khi mở port cho tất cả các thiết bị).
Firewall → Rules → WAN → Add (Orange Plus Icon)
- Action = Pass
- Quick = Apply the action immediately on match
- Interface = WAN
- Direction = in
- TCP/IP Version = IPv6
- Protocol = TCP
- Source = Any
- Destination = Any (Hoặc set cho từng thiết bị cụ thể)
- Destination port range
- from = 80
- to = 80
Các tùy chọn khác có thể để mặc định.
IPv6 Port 443 các bước tương tự.
Orange Pi Zero 3
Video quá trình
Caddy Reverse Proxy
docker-compose.ymlservices: caddy: image: caddy:2.7 container_name: caddy restart: unless-stopped cap_add: - NET_ADMIN ports: - "80:80" - "443:443" - "443:443/udp" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./site:/srv - ./caddy_data:/data - ./caddy_config:/config networks: default: name: pico external: true
Caddyfilejohn.io.vn { reverse_proxy httpd:80 }
Web tĩnh đơn giản HTTP
docker-compose.ymlservices: httpd: image: httpd:2.4 container_name: httpd restart: always ports: - "8080:80" volumes: - ./htdocs:/usr/local/apache2/htdocs networks: default: name: pico external: true
Cloudflare DDNS
godns Cloudflare
GoDNS Configuration Cloudflare.
docker-compose.ymlservices: godns: image: timothyye/godns:latest container_name: godns restart: always volumes: - ./config.json:/config.json network_mode: host
config.json{ "provider": "Cloudflare", "login_token": "API TOKEN CLOUDFLARE CUA BAN TAI DAY", "domains": [ { "domain_name": "john.io.vn", "sub_domains": ["@"] } ], "resolver": "2001:4860:4860::8888", "ipv6_urls": ["https://ipv6.seeip.org"], "ip_type": "IPv6", "interval": 300, "socks5_proxy": "" }
Lưu ý chỉnh config godns và router firewall cho đúng trong trường hợp sử dụng IPv4 như dưới đây.
Đặt IP tĩnh cho Orange Pi Zero 3.
Services → DHCPv4 → LAN → DHCP Static Mappings for this interface → Thêm MAC address và IP address.
NAT port 80, 443 về địa chỉ IP của Orange Pi Zero 3.
Dưới đây là ví dụ cho port 80.
Firewall → NAT → Port Forward → Add
- Interface = WAN
- TCP/IP Version = IPv4
- Protocol = TCP
- Destination = WAN address
- Destination port range
- from = 80
- to = 80
- Redirect target IP = Single host or Network = 192.168.1.XXX (Orange Pi Zero 3 IP)
- Redirect target port = 80
Các thông tin khác có thể để mặc định.
Để lại một bình luận