Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "HI.AI Members" các nội dung bạn quan tâm.

Phụ lục 8. Mẫu cấu hình Nginx reverse proxy cho Ollama

1. Nguyên tắc an toàn

Không nên mở Ollama trực tiếp ra Internet. Nếu cần reverse proxy, ưu tiên proxy đến API trung gian. Chỉ proxy trực tiếp đến Ollama trong môi trường nội bộ, có xác thực, IP allowlist và hiểu rõ rủi ro.

Mô hình khuyến nghị:

 
Người dùng → Nginx → API trung gian → Ollama localhost
 

Không khuyến nghị:

 
Internet → Nginx → Ollama 11434
 

2. Mẫu reverse proxy đến API trung gian

Giả sử API trung gian chạy tại:

 
127.0.0.1:8000
 

File Nginx:

 
server {
listen 80;
server_name ai-internal.example.local;

client_max_body_size 20M;

location / {
proxy_pass http://127.0.0.1:8000;

proxy_http_version 1.1;
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;

proxy_connect_timeout 60s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
}
 

Kiểm tra cấu hình:

 
sudo nginx -t
 

Reload:

 
sudo systemctl reload nginx
 

3. Mẫu proxy nội bộ đến Ollama có giới hạn IP

Chỉ dùng trong LAN nội bộ và có kiểm soát. Ví dụ chỉ cho phép IP 10.10.20.10 gọi:

 
server {
listen 8088;
server_name ai-ollama-internal.example.local;

allow 10.10.20.10;
deny all;

location / {
proxy_pass http://127.0.0.1:11434;

proxy_http_version 1.1;
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_connect_timeout 60s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
}
 

Lưu ý: cấu hình này vẫn chưa có xác thực người dùng; chỉ phù hợp cho kết nối service-to-service đã kiểm soát.

4. Mẫu cấu hình hỗ trợ streaming

Nếu cần streaming response:

 
location / {
proxy_pass http://127.0.0.1:8000;

proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_cache off;

proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
 

5. Lưu ý bảo mật

  • Không mở port 11434 ra Internet.
  • Ưu tiên để Ollama listen trên 127.0.0.1.
  • API trung gian phải có xác thực, phân quyền, log, rate limit.
  • Không đưa API key vào file Nginx nếu không cần.
  • Không ghi dữ liệu nhạy cảm trong URL query.
  • Nếu dùng HTTPS, cấu hình chứng chỉ phù hợp.
  • Với hệ thống bệnh viện, cần ghi log và kiểm soát IP truy cập.