[Part 1] Ubuntu server for web hosting

Bài đầu tiên trong series là Setup 1 con Ubuntu server.

Mình có 1 con HP EliteDesk 800 G2 với

  • i5-6400
  • 32GB RAM – 2666Mhz
  • SSD NVme Gen3 x4 : 256GB
  • SSD Sata : 120GB

OS

Oki sau khi installed OS xong. Ta có 1 vài thứ cơ bản

Update /etc/sudoers và thêm vào cuối file

$USER ALL=(ALL) NOPASSWD:ALL
  • Update LVM 100% Storage
  • Update NTP & Timezone
curl -L https://github.com/jooservices/bash/blob/main/services/vm | bash

Oki để hosting ta sẽ dùng Virtualmin.

Virtualmin is the leading and most sophisticated web hosting control panel designed for Linux systems.

Virtualmin

By default Virtualmin không có đủ hết các PHP versions do đó ta sẽ install thêm

curl -L https://raw.githubusercontent.com/jooservices/bash/main/services/multi-php.sh | bash

Cơ bản 1 con web hosting như vậy là đủ. Một số packages bổ sung tùy chọn

By default Webmin / Virtualmin sẽ enable firewall. Do đó nếu cần access từ ngoài vào với các 3rd party services / ports thì cần update rules

Live site : https://selfhosted.jooservices.com

Để setup domain / Cloudflare trỏ về Virtualmin ta sẽ dùng HAProxy ở bài sau

My infrastructure network

Về cơ bản infrastructure network này mình build chưa được hoàn thiện, nhưng cũng thấy tương đối happy về nó. 1 chút chia sẽ.

Router 3910

  • Mình có tổng cộng 4 WANs. Tuy nhiên thực tế chỉ có 1 WAN chính với IP tĩnh

Core Switch – CnMatrix 2028-P

  • Thật ra em này có 1 điểm dở là không có port 2.5Gbe nên vướng 1 con Asus AX86U đành phải xài tạm port 1Gbe
  • 1 port SFP+ đến “Workstation”
  • 1 port 1Gbe đến X300
  • 1 port 1Gbe đến ProDesk
  • 1 port 1Gbe đến Asus AX86U

ProDesk

  • Em nó tuy nhỏ bé nhưng lại gần như là mấu chốt chính của toàn bộ Network. Gọi em nó là gatekeeper
  • HAProxy
    • Tiếp nhận 100% mọi requests và sau đó forwarding đến các server phía sau
    • Cũng là em SSH Jumper luôn
    • Tuy nhiên 1 số bất cập mình chưa làm được
      • Forward RDP
      • Passthrough SSL ( cái này đúng ra đã từng làm được mà giờ lại bị stucked )
  • Grafana
  • Loki
  • Syslog
  • Pihole

Asrock X300

  • Bản chất em này … ăn điện ít mà specs cũng kha khá ( 5700G / 64GB RAM & 2 TB SSD ) nên “hiểu” em nó như 1 thiết bị thứ sẽ online gần như 24/7. Do đó các “services” hosting trên đây là các services cần online liên tục
  • 1 con Virtualmin để hosting … chính các web này và n web khác
  • và 1 vài VM khác

Workstation

  • Em nó chính thức đã được triển khai với ESXi 7
  • 1 em VM “SMB” được attach với các HDDs. Em này bản thân cũng khá nhỏ, chủ yếu để phục vụ SMB / Plex & Torrent thôi
  • Em Workstation ngốn điện cao nên lý thuyết cũng khó online 24/7 mà sẽ có lúc down. Tuy nhiên specs em nó mạnh. Nên các service cần resource cao sẽ nằm trên đây.