๐ Nginx Reverse Proxy Advanced:Multisite、Rewrite、Caching、Load Balancing ๅ จๆป็ฅ
ๅจ็พไปฃ Web ๆถๆง่ฃก,Nginx Reverse Proxy(ๅๅ Proxy) ๅนพไนๆฏๆจ้
:
ไธๅๅฐๅค็ๅ
ฅๅฃๅฑค,่ๅพๅฏไปฅๆฏๅคๅฐ Web Server、Application Server、API、ๅพฎๆๅ、็่ณๆฏไธๅ็ถฒๆฎตไธญ็ๅ
ง้จ็ณป็ตฑ。
ๅพๅคไบบๅช็จ Nginx ่ฝ็ผๅนพๅๅพ็ซฏๆๅๅฐฑๅๆ,ไฝๅจๅฏฆๅไธ,ๆๅๅธธๅธธๆ้ๅฐ:
- ๅไธๅ็ถฒๅไธ่ฆๆๅๅคๅๆ็จ:
/app1、/app2、/grafana… - ๅไธๅ IP ่ฆๆฟ่ผๅคๅ็ถฒๅ(Multisite):
app.example.com、api.example.com… - ๆณ็จ Rewrite ็ตฑไธ็ถฒๅ็ตๆง,้ฟๅ ่้ฃ็ต 404。
- ๅธๆๅ็ซฏๅธถไธๅฑค ๅฟซๅ่่ฒ ่ผๅ่กก,ๆธ่ผๅพ็ซฏๅฃๅ。
ๆฌๆๅพๆฆๅฟต、ๆถๆง,ๅฐๅฏฆ้่จญๅฎ็ฏไพ่ๆ้ฏๅฟๆณ,ไธๆฌกๆด็ Nginx Reverse Proxy ็้ฒ้็ฉๆณ, ๅนซไฝ ๆ Nginx ๆ้ ๆ็ฉฉๅฎ、ๅฏ่งๆธฌ、ๅฏๆดๅ ็ๅ็ซฏๅ ฅๅฃๅฑค。
๐ ็ฎ้
- ไธ、Nginx Reverse Proxy ็่ง่ฒ่ๆ ธๅฟๆฆๅฟต
- ไบ、ๆๅฐๅฏ็จ็ฏไพ:ๅฎไธๆๅ Reverse Proxy
- ไธ、ๅค็ซ้ปๆถๆง:Host-Based ่ Path-Based Routing
- ๅ、Rewrite ่ URL ่จญ่จ:return / rewrite / try_files
- ไบ、Nginx Proxy Cache:็บๅพ็ซฏๆธๅฃ็ๅฟซๅๅฑค
- ๅ ญ、Load Balancing:ๅคๅฐๅพ็ซฏ็ๆต้ๅๆฃ็ญ็ฅ
- ไธ、X-Forwarded-* ่ Header ่็:่ฎๅพ็ซฏ็ฅ้็ๅฏฆไธ็
- ๅ ซ、Timeout / Buffer / ้ๅถๅผ:้ฟๅ ่ซๅๆท็ท่็่จๆถ้ซ
- ไน、ๆ้ฏ่ๅฏฆๆฐๅฟๆณ:502/504、่ฟดๅ Redirect、Header ๅ้ก
- ๅ、ๅธธ่ฆๅ้ก FAQ
- ๐งญ ่กๅๆธ ๅฎ:ๅฆไฝๆ้ไบ่จญๅฎ่ฝๅฐๅฐไฝ ็็ฐๅข?
- ๐ ๅปถไผธ้ฑ่ฎ
ไธ、Nginx Reverse Proxy ็่ง่ฒ่ๆ ธๅฟๆฆๅฟต
Nginx ๅจๅ ฅๅฃๅฑคไธป่ฆๆฎๆผๅนพๅ่ง่ฒ:
- Reverse Proxy:ๆฅๆถ Client ่ซๆฑ,ๅๅนซๅฎ่ฝ็ผๅฐๅ ง้จๆๅ。
- ้ไธญ TLS ็ต็ต:ๅฐๅคๅชๅจ Nginx ๅ HTTPS,ๅ ง้จ่ๅพ็ซฏๆก HTTP。
- URL ่ Host Routing:ไพ Hostname、URL ่ทฏๅพๅๆตๅฐไธๅๆๅ。
- ๅฟซๅ่ๅฃ็ธฎ:้ๆ ๆชๆก่ๅฏๅฟซๅ API ็ฑๅ็ซฏๅ ๆไฝๅคง้ๆต้。
- ่ฒ ่ผๅ่กก:ไธ็ต upstream ่ๅพๅฏไปฅๆๅคๅฐๅพ็ซฏ。
ๆ ธๅฟ่งๅฟตๆฏ:ๅฐๅคๅช็ๅฐ Nginx;ๅฐๅ ง็ฑๅฎๆๆงไธๅ่ซๆฑๆ่ฉฒๅปๅช่ฃก、ไปฅไป้บผๆจฃ็้ๅบฆ่่ฆๅ้้。
ไบ、ๆๅฐๅฏ็จ็ฏไพ:ๅฎไธๆๅ Reverse Proxy
ๅ
ๅพๆๅบๆฌ็ไพๅญ้ๅง:Nginx ๆฅไฝ https://app.example.com,่ๅพๆฏไธๅฐๅจๅ
ง้จ็ถฒๆฎต็ Web ๆๅ。
# /etc/nginx/conf.d/app.conf
server {
listen 80;
server_name app.example.com;
# ่ฅๅทฒๅจๅค้จๅ TLS ็ต็ต,ๅฏๅ
็จ HTTP;่ฅ่ฆ Nginx ็ต็ต TLS ๅๆน็บ listen 443 ssl ...
location / {
proxy_pass http://10.0.10.20:8080;
# ๅบๆฌ Header ๅณ้
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ๆชขๆฅ่จญๅฎไธฆ้ๆฐ่ผๅ ฅ:
sudo nginx -t
sudo systemctl reload nginx
้ๅฐฑๆฏๆๅฐๅฏ็จ็ Reverse Proxy ้ ็ฝฎ,ไฝๅฏฆๅไธๆๅ้ๆๆณ่ฆ:
- ๅคๅ็ถฒๅ / ๅญ็ถฒๅ(Host-Based Multisite)。
- ๅ็ถฒๅไธไพ็ ง่ทฏๅพๅๆตๅฐไธๅๆๅ(Path-Based Routing)。
- ๅจๅ ฅๅฃๅฑคๅๅฟซๅ、่ฒ ่ผๅ่กก、Rewrite ่็ถฒๅ็ญ。
ไธ、ๅค็ซ้ปๆถๆง:Host-Based ่ Path-Based Routing
1. Host-Based:ๅคๅ็ถฒๅๆๅญ็ถฒๅ
ๅ ธๅ็จๆณ:ไธๅ Nginx ๅฐๆๅคๅๆๅ,ๅ่ชๆไธๅ็ถฒๅ。
# /etc/nginx/conf.d/app1.conf
server {
listen 80;
server_name app1.example.com;
location / {
proxy_pass http://10.0.10.21:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# /etc/nginx/conf.d/app2.conf
server {
listen 80;
server_name app2.example.com;
location / {
proxy_pass http://10.0.10.22:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
2. Path-Based:ๅ็ถฒๅไธๅๅๆ็จ่ทฏๅพ
ๅฆไธ็จฎๅธธ่ฆๆ
ๅข:ๅ
จ้จ้ฝ่ตฐ https://portal.example.com,ไฝไธๅ่ทฏๅพๅฐๆไธๅๆๅ。
# /etc/nginx/conf.d/portal.conf
server {
listen 80;
server_name portal.example.com;
# /app1 → ่ฝ็ตฆๅ
ง้จ 10.0.10.31
location /app1/ {
proxy_pass http://10.0.10.31:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# /app2 → ่ฝ็ตฆๅ
ง้จ 10.0.10.32
location /app2/ {
proxy_pass http://10.0.10.32:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# /grafana → Grafana ๅพ็ซฏ
location /grafana/ {
proxy_pass http://10.0.10.40:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ๆณจๆ location /path/ ่ proxy_pass ็็ตๅฐพๆ็ท้ไฟ,ๆๅฝฑ้ฟ URL ่ขซ่ฝ็ผๆ็่ทฏๅพๆผๆฅๆนๅผ,
่ฅ่็ไธ็ถๅพๅฎนๆๅบ็พ // ๆ่ทฏๅพ่ขซๅๆ็้ฏ่ชค。ๅปบ่ญฐๅจๅฏฆ้็ฐๅขๅคๅๅนพๅๅฐ็
งๆธฌ่ฉฆ。
ๅ、Rewrite ่ URL ่จญ่จ:return / rewrite / try_files
ๅจๅ Reverse Proxy ๆ,ๅธธๅธธ่ฆ่็่็ถฒๅๅฐๅ、ๆฐ่ API ่ทฏๅพๅๆ、ๆๆฏ่ฎ้ๆ ็ถฒ็ซๆกๆถ(ไพๅฆ SPA、ๅ็ซฏ Router)ๆญฃๅธธๅทฅไฝ, ้ๆๅๅฐฑๆ็จๅฐ Rewrite ่ Redirect。
1. ็จ return ๅ็ฐกๅฎ 301/302 ๅฐ่ฝ
# ๅฐ่็ถฒๅ /old-path ๆฐธไน
ๅฐๅๆฐ็ถฒๅ /new-path
location = /old-path {
return 301 /new-path;
}
# ๅฐ http ๅ
จ้จๅฐๅ https(ๅธธ่ฆ)
server {
listen 80;
server_name app.example.com;
return 301 https://$host$request_uri;
}
2. ็จ rewrite ๅ่ทฏๅพๆนๅฏซ(ๅ
ง้จ่ฝๅ)
# ๅฐ /api/v1/... ๆนๅฏซๆ /v1/... ๅไบค็ตฆๅพ็ซฏ(ไธๆน่ฎ็่ฆฝๅจไฝๅๅ)
location /api/ {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://10.0.10.50:8080;
}
break ไปฃ่กจๆนๅฏซๅฎๅพๅจๅไธๅ location ็นผ็บ่็,ไธๅ้ๆฐ่ทไธๆฌก location ๅน้
。
3. try_files:้ๆ
ๆชๆก่ SPA ็ๅฅฝๆๅ
# ๅ
ธๅ SPA ๅ็ซฏ่จญๅฎ:ไธๅญๅจ็่ทฏๅพ้ฝไธ็ตฆ index.html
location / {
try_files $uri $uri/ /index.html;
}
็บไบ้ฟๅ ๅบ็พ Redirect ่ฟดๅ่้ฃไปฅ็ถญ่ญท็ rewrite ่ฆๅ, ไธ่ฌๅปบ่ญฐ็็ญ็ฅๆฏ:่ฝ็จ return ็ๅฐๆนๅฐฑ็จ return,ๅชๆ้่ฆๅ ง้จๆนๅฏซๆๆไธ rewrite。
ไบ、Nginx Proxy Cache:็บๅพ็ซฏๆธๅฃ็ๅฟซๅๅฑค
Nginx ๅฏไปฅ็ดๆฅๅจ Reverse Proxy ๅฑคๅ HTTP Cache,ๅฐๆผไธๅธธ่ฎๅ็ API ๆ้ๆ ๅ งๅฎนไพ่ชช, ่ฝๅคงๅน ๆธๅฐๅพ็ซฏๅฃๅ่ๅๆๆ้。
1. ๅฎ็พฉๅฟซๅๅ่ Key
# http ๅๆฎต(้ๅธธๅจ nginx.conf)
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:100m
max_size=10g inactive=60m use_temp_path=off;
่ชชๆ:
keys_zone=my_cache:100m:ๅฟซๅ็ดขๅผๅฒๅญๅจ่จๆถ้ซไธญ,็ด 100MB。max_size=10g:ๅฟซๅๆชๆกๆๅคไฝฟ็จ 10GB ็ฃ็ข็ฉบ้。inactive=60m:60 ๅ้ๆฒ่ขซ่จชๅ็ cache ๆ่ขซๆธ ้ค。
2. ๅจ server / location ๅ็จ Cache
server {
listen 80;
server_name api.example.com;
location /v1/ {
proxy_pass http://10.0.20.10:8080;
proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header X-Proxy-Cache $upstream_cache_status;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ไนๅพไฝ ๅฏไปฅ่งๅฏ X-Proxy-Cache Header(ไพๅฆ MISS / HIT / EXPIRED),
ไพๅคๆทๅฟซๅๅฝไธญ็ๆณ。
ๅ ญ、Load Balancing:ๅคๅฐๅพ็ซฏ็ๆต้ๅๆฃ็ญ็ฅ
Nginx ็ upstream ๆจก็ตๅฏไปฅ่ฎไฝ ้ๅธธๅฎนๆๆๆต้ๅๆฃๅฐๅคๅฐๅพ็ซฏไธปๆฉ。
1. ๅบๆฌ round-robin ่ฒ ่ผๅ่กก
# http ๅๆฎตไธญๅฎ็พฉ upstream
upstream app_backend {
server 10.0.30.11:8080;
server 10.0.30.12:8080;
}
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://app_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
2. least_conn、ip_hash ็ญ็ญ็ฅ
# ไปฅ้ฃ็ทๆธๆๅฐ็บๅชๅ
(้ฉๅ้ท้ฃ็ทๆ่ณๆบๅทฎ็ฐ่ผๅคง็ๅพ็ซฏ)
upstream app_backend_least {
least_conn;
server 10.0.30.11:8080;
server 10.0.30.12:8080;
}
# ไปฅ client IP ็ฎ hash(็ฐกๆ session ้ป่)
upstream app_backend_sticky {
ip_hash;
server 10.0.30.11:8080;
server 10.0.30.12:8080;
}
่ฅไฝ ็ๆ็จๅฐ Session ้ป่ๅบฆๆ่ฆๆฑ(ไพๅฆ Session ๅญๅจ local memory),
ๅฏไปฅๆญ้
ip_hash ๆๆน็จๅค้จ Session Store(Redis ็ญ),ๅฐฑๅฏไปฅไฝฟ็จๆดๅนณๅ็ๅๆต็ญ็ฅ。
ไธ、X-Forwarded-* ่ Header ่็:่ฎๅพ็ซฏ็ฅ้็ๅฏฆไธ็
Reverse Proxy ไนๅพ,ๅพ็ซฏ็ๅฐ็ Client IP ๆ่ฎๆ Nginx ็ IP,ๅ ๆญคๆๅ้ๅธธๆ้้ๆจๆบ Header ๆ็ๅฏฆ Client ่ณ่จๅธถ้ฒๅป:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
- X-Real-IP:่จ้ๆๆฅ่ฟ Client ็ไพๆบ IP。
- X-Forwarded-For:ไธๆข Proxy ้่ทฏไธ็ๆๆ IP。
- X-Forwarded-Proto:ๅ่จดๅพ็ซฏๅๆฌๆฏ HTTP ้ๆฏ HTTPS。
ๅพๅคๆ็จๆไพๆ้ไบ Header ไพ็ข็ๆฅ่ช、็ข็็ตๅฐ็ถฒๅ、ๆๅคๆทๆฏๅฆๅผทๅถ่ทณ่ฝ HTTPS, ๅฆๆๆฒ่จญๅฎๅฅฝ,ๅธธๅบ็พ「ๅจ HTTPS ็ๅ็ซฏ,ไฝๅพ็ซฏไปฅ็บๆฏ HTTP」ไน้ก็ๆช็ฐ่ก็บ。
ๅ ซ、Timeout / Buffer / ้ๅถๅผ:้ฟๅ ่ซๅๆท็ท่็่จๆถ้ซ
ๅจ้ซๅปถ้ฒๆๅพ็ซฏๆฅ่ฉข่ผๆ ข็็ฐๅข่ฃก,ๅฆๆ Proxy timeout ๅคช็ญ,ๅฐฑๆ็ๅฐๅคง้ 502/504。 ๅธธ็จๅๆธๅ ๆฌ:
# server ๆ location ็ฏๅ็ๅฏ่จญๅฎ
proxy_connect_timeout 5s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# ๆงๅถ Nginx ๆฅๆถไธๆธธๅๆ็ buffer
proxy_buffer_size 16k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
ๅจ่ชฟๆด้ไบๆธๅผๆ,ๅปบ่ญฐๅ ็่งฃๅพ็ซฏๆ็จ็ๅนณๅ่ๆ้ท่็ๆ้,ๅ้ ็ๅ็็ฉบ้,้ฟๅ ไธๅณๆๅพ้ท้ ๆ่ณๆบ้ทๆ้่ขซๅ ็จ。
ไน、ๆ้ฏ่ๅฏฆๆฐๅฟๆณ:502/504、่ฟดๅ Redirect、Header ๅ้ก
1. 502 / 504 ้ฏ่ชค
- ็ขบ่ชๅพ็ซฏๆๅๆฏๅฆ็็ๆๅจๆๅฎ IP/Port ไธ listen。
- ๆชขๆฅ Nginx error log ่ฃก็่ฉณ็ดฐ้ฏ่ชค่จๆฏ(ๅฆ
connect() failed、upstream timed out)。 - ่ชฟๆด
proxy_connect_timeout、proxy_read_timeout็ญๅๆธ。 - ็ขบ่ช Security Group / ้ฒ็ซ็ๆฏๅฆๆพ่ก Nginx ่ๅพ็ซฏไน้็้ฃ็ท。
2. ็ก้ Redirect / URL ่ฟดๅ
- ๅธธ่ฆๆผ HTTP→HTTPS、ๆๆ็จ็จๅผๅ งๅ่ฝไธๆฌก Redirect。
- ๆชขๆฅๆ็จๆฏๅฆไพๆ
X-Forwarded-Protoๅคๆทๅๅฎ,่ฅๆฒ่จญๅฅฝๆไปฅ็บ่ชๅทฑๅจ HTTP ไธๅ่ฝไธๆฌก HTTPS。 - ็ฐกๅ Rewrite ่ฆๅ,่ฝ็จ
returnๅฐฑไธ็จ่ค้็rewriteๆญฃๅ。
3. Client IP ้ฝ่ฎๆ Nginx ็ IP
- ็ขบ่ชๆ่จญๅฎ
X-Real-IP่X-Forwarded-For。 - ๅจๅพ็ซฏ Web Server ๆๆ็จๆกๆถไธญ,่จญๅฎๆก็จ้ไบ Header ไฝ็บ็ๅฏฆ IP ็ไพๆบ。
- ๅฆๆๆๅคๅฑค Proxy,่ฆๅไฟกไปป Proxy ๅ่กจ(้ฟๅ ๅฝ้ Header)。
ๅ、ๅธธ่ฆๅ้ก FAQ
Q1. ไป้บผๆ ๆณไธ้ฉๅๅจๅ็ซฏไฝฟ็จ Nginx Reverse Proxy?
ๅช่ฆไฝ ็ๆถๆงไธญๅญๅจๅคๅๅพ็ซฏๆๅ、้่ฆ้ไธญๆง็ฎกๅฐๅคๅ ฅๅฃ、ๆ่ ๅธๆๆ TLS、ๅฟซๅ、Rewrite、ๅญๅๆงๅถ้ไธญ่็, ๅนพไน้ฝๅฏไปฅ่ๆ ฎๅจๅ็ซฏๆพไธๅฑค Nginx Reverse Proxy。็นๅฅๆฏ็ถไฝ ๆชไพๆ่จ็ซๅฐๅ ฅๅพฎๆๅๆๅฎนๅจๅนณๅฐๆ, ้ๅฑคๅ ฅๅฃๆ่ฎๅพๆดๅ ้้ต。
Q2. Nginx Reverse Proxy ๅ Load Balancer ๆไป้บผๅทฎๅฅ?
Nginx ๆฌ่บซๆขๅฏไปฅๆฏ Reverse Proxy,ไนๅฏไปฅๆฏ Load Balancer。ๆฆๅฟตไธ:
- Reverse Proxy:ไปฃ่กจๅพ็ซฏๆๅๆฅๆถ่ซๆฑ,่็ URL、Header、Cookie、ๅฃ็ธฎ、TLS ็ญ้่ผฏ。
- Load Balancer:ๅฐๆณจๅจๆๆต้ๅๆฃๅฐๅคๅฐๅพ็ซฏไธปๆฉไธ。
ๅพๅคๅฏฆไฝๆ็ดๆฅๅจๅไธๅฐ Nginx ไธๅๆๅ้ๅ ฉไปถไบ,็ๆญฃ็ๅทฎๅฅๆฏ่ผๅๅ「ๆถๆง่ง่ฒ」่้ๅทฅๅ ทๆฌ่บซ。
Q3. ่ฆไธ่ฆๆ้ๆ ๆชๆก็ดๆฅๆพๅจ Nginx ไธ,่ไธๆฏๅพ็ซฏ?
ๅจๅคๆธๆ ๆณไธๆฏๅผๅพ็。ๅฐ้ๆ ๆชๆก(ๅ็、CSS、JS、ๅ็ซฏๆๅ ็ตๆ็ญ)็ดๆฅ็ฑ Nginx ๆไพ,ๅฏไปฅๅคงๅน ๆธๅฐๅพ็ซฏ่ฒ ๆ, ไธฆไธๆดๅฎนๆ่จญๅฎ Cache-Control ่ๅฃ็ธฎ,ไธ้ไฝ ไป็ถ้่ฆ่ๆ ฎ้จ็ฝฒๆต็จ(ๅฆไฝๅๆญฅๆชๆก)่็ๆฌ็ฎก็็ญ็ฅ。
Q4. ่ฆไธ่ฆ็ดๆฅๆๅฟซๅ่่ฒ ่ผๅ่กก้ฝๅๅจๅไธๅฐ Nginx ไธ?
ๅฐๅๆๅฎไธๅๅ็็ฐๅข,ๅฏไปฅ็จ「ไธๅฐ Nginx ๅๅฐๅบ」็ๆนๅผ,็ถญ่ญท็ฐกๅฎ、ๆๆฌไฝ; ไฝๅจ้ซๆต้、ๅคๅฐ้จ็ฝฒๆ้ซๅบฆ้้ต็ณป็ตฑไธญ,้ๅธธๆๅๅฑค:L4 ่ฒ ่ผๅ่กก、CDN ๆๅฐ็จๅฟซๅๅฑค、L7 Reverse Proxy,ๅๅพๅพๆๆฏๆ็จ。
๐งญ ่กๅๆธ ๅฎ:ๅฆไฝๆ้ไบ่จญๅฎ่ฝๅฐๅฐไฝ ็็ฐๅข?
✅ ๅ
ๆด็็พๆๆๅๆธ
ๅฎ:ๆๅชไบ็ถฒๅ / ่ทฏๅพ / ๅ
ง้จ IP / Port?
✅ ๆฑบๅฎ Multisite ็ญ็ฅ:ไปฅ Host ็บไธป,้ๆฏไปฅ Path ็บไธป,ๆๅ
ฉ่
ๆทท็จ?
✅ ๅจ Lab ๆๆธฌ่ฉฆ็ฐๅขๅ
ๆญไธๅฑค Nginx Reverse Proxy,้ฉ่ญ Proxy / Rewrite / Header ่ก็บ
✅ ๅฐ้ๆ
ๅ
งๅฎนๆๅฏๅฟซๅ API ๅ็จ Proxy Cache,่งๅฏ Hit Rate ่ๅพ็ซฏ่ฒ ่ผ่ฎๅ
✅ ๅฐ่ฒ ่ผ่ผ้็ๆๅ่จญ่จ upstream load balancing,ๆญ้
least_conn ๆ ip_hash
✅ ๅฏซไธไปฝ็ฐก็ญ็「ๆ้ฏๆๅ」,ๅ
ๅซๅธธ่ฆ 502/504、Redirect ่ฟดๅ、Client IP ๅ้ก็่็ๆญฅ้ฉ
๐ฌ ไธ่ตทๅไบซไฝ ็ Nginx Reverse Proxy ๆถๆง
ไฝ ็ฎๅ็ Nginx Reverse Proxy ๆฏๆ้บผ่จญ่จ็?
ๆฏๅฎไธๅ็ซฏ Gateway,้ๆฏๆญ้
ๅคๅฑค Load Balancer ่ CDN?
ๅจๅฐๅ
ฅๅค็ซ้ป、Rewrite、ๅฟซๅ่่ฒ ่ผๅ่กก็้็จไธญ,ๆๆฒๆ่ธฉ้ไป้บผๆ่ถฃ็ๅ?
ๆญก่ฟๅจไธๆน็่จๅไบซไฝ ็ๅฏฆๆฐ็ถ้ฉ,ไนๅฏไปฅๆๅบๆณ็็ๅปถไผธไธป้ก(ไพๅฆ่ Kubernetes Ingress、Service Mesh ็ๆดๅ),
ๆๆๅๆด็ๆๅพ็บๆ็ซ ๐
๐ ๅปถไผธ้ฑ่ฎ
- ๐ง Linux ๅฏฆๆฐ้ฒ็ฆฆ:Firewalld、iptables ่ nftables ็ๆดๅ็ญ็ฅ่ๆไฝณๅฎๅ จๆถๆง
- ๐ง GoAccess ๆฅ่ชๅๆ:Nginx / Apache ๅณๆๆต้ๅ่กจๆฟๅปบ็ฝฎๆๅญธ
- ๐ง Linux OpenVPN Server ๆถ่จญๅฎๆดๆๅ:PKI ๆ่ญ、้ๅ้ฉ่ญ่ Client ่ทฏ็ฑๅฐๅ
- ๐ง Linux ๅฎๅ จๆถๆงๆทฑๅบฆ่งฃๆ:SELinux、AppArmor、auditd ่ Fail2Ban
- ๐ง Proxmox ่ๆฌ็ถฒ่ทฏๅ จๆป็ฅ:Linux Bridge、OVS ่ VXLAN ๅฏฆๆฐ่จญๅฎ
— WWFandy・Nginx Reverse Proxy ็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ