~/ / Yapay zeka makaleleri / VPS'te yerel LLM / Ollama'nın önüne nginx koyun: temel kimlik doğrulama, HTTPS ve akış ayarları
Ollama'nın önüne nginx koyun: temel kimlik doğrulama, HTTPS ve akış ayarları
Ollama varsayılan olarak sunucunun kendisinde dinler ve bu, onun için en güvenli yerdir. Başka bir makinenin ona ulaşması gerektiğinde Ollama SSS sayfası nginx gibi bir proxy sunucusuna işaret eder. Bu yazı söz konusu kurulumu nginx belgelerinden oluşturur: bir parola, HTTPS, akışla gelen yanıtlar için önemli ayarlar ve diğer kapıları kapatan bir güvenlik duvarı.
Yayın: · 4 dk okuma · Resmî Ollama ve nginx belgelerine göre 2026-10-26 tarihinde kontrol edildi. Direktiflerin varsayılan değerleri nginx sürümüne bağlıdır; kullandığınız sürümü kontrol edin.
Ollama SSS sayfası ne diyor
Ollama SSS sayfası, Ollama'nın bir HTTP sunucusu çalıştırdığını ve Nginx gibi bir proxy sunucusu kullanılarak dışarıya açılabileceğini söyler. Sayfadaki örnek 80 numaralı portu dinler, bir server_name belirler, istekleri proxy_pass http://localhost:11434 ile iletir ve Host başlığını localhost:11434 olarak ayarlar.
Kontrol ettiğimiz SSS sayfası, Ollama sunucusu için herhangi bir kimlik doğrulamasını anlatmıyor. Parolanın, önündeki proxy tarafından sağlanması gerekmesinin nedeni budur. Ollama varsayılan olarak 127.0.0.1 adresinin 11434 numaralı portuna bağlanır; bu nedenle aynı sunucudaki bir nginx, bu adres değiştirilmeden ona ulaşabilir.
Temel kimlik doğrulama ile parola
ngx_http_auth_basic_module, bir kullanıcı adı ve parolayı denetleyerek erişimi sınırlar. İşi iki direktif yapar: dizesi realm olarak kullanılan ve varsayılanı off olan auth_basic ile parola dosyasını belirten auth_basic_user_file.
| Direktif | Varsayılan | Belgeler ne diyor |
|---|---|---|
| auth_basic string | off; | off | Parametre, kimlik doğrulama realm'i olarak kullanılır. off değeri, bir önceki düzeyden devralınan bir ayarı iptal eder. |
| auth_basic_user_file file; | yok | Dosyada her satırda bir name:password girdisi bulunur ve # ile başlayan satırlar yorumdur. |
- Desteklenen parola türleri: crypt() ile şifrelenmiş parolalar ve apr1 özetleri; her ikisi de Apache'nin htpasswd aracıyla veya openssl passwd ile üretilir.
- {SCHEME}data sözdizimi de desteklenir. Sayfa, PLAIN'in yalnızca bir örnek olduğunu ve kullanılmaması gerektiğini; tuzsuz bir SHA-1 olan SHA'nın da gökkuşağı tablosu saldırılarına açık olduğu için kullanılmaması gerektiğini söyler. SSHA, tuzlanmış SHA-1'dir.
- Belgelerdeki örnek: location / { auth_basic "closed site"; auth_basic_user_file conf/htpasswd; }
Sayfa htpasswd ve openssl passwd araçlarını anar ama komut vermez. Yaygın kullanılan biçimler bize aittir, sayfadan alınmamıştır: parola soran htpasswd -c /etc/nginx/ollama.htpasswd alice ve kullanıcı adından ve iki noktadan sonra yapıştırılacak bir özet yazdıran openssl passwd -apr1.
HTTPS ile şifreli bağlantı
Belgelerden bir ifade değil, bizim okumamız: temel kimlik doğrulama parolayı her istekle birlikte gönderir; bu yüzden yalnızca HTTPS'in arkasında kullanın. nginx belgelerine göre bir sunucunun dinleme soketinde ssl parametresine ve sertifikanın ile özel anahtarın konumlarına ihtiyacı vardır.
| Direktif | Belgelerden örnek |
|---|---|
| listen | listen 443 ssl; |
| server_name | server_name www.example.com; |
| ssl_certificate | ssl_certificate www.example.com.crt; |
| ssl_certificate_key | ssl_certificate_key www.example.com.key; |
- nginx varsayılan olarak ssl_protocols TLSv1.2 TLSv1.3 ve ssl_ciphers HIGH:!aNULL:!MD5 değerlerini kullanır; bu yüzden bunları açıkça yapılandırmak genellikle gerekmez.
- Özel anahtar erişimi kısıtlanmış bir dosyada saklanmalıdır, ancak nginx'in ana (master) işlemi tarafından okunabilir olmalıdır.
- Tarayıcılar tanınmış bir otoriteden alınmış sertifika için hata bildiriyorsa, sunucunun ara sertifikaları da göndermesi gerekebilir. Birleşik dosyada sunucu sertifikası zincirdeki sertifikalardan önce gelmelidir; aksi halde nginx bir key values mismatch hatasıyla başlamaz.
- Let's Encrypt'in başlangıç sayfası, sağlayıcınız sizin için sertifika almıyorsa ve sunucunuzu yönetebiliyorsanız bir ACME istemcisi çalıştırabileceğinizi ve çoğu kişi için Certbot'u önerdiğini söyler.
Akışla gelen ve yavaş yanıtlar için ayarlar
Bir model yanıtını parça parça yazar ve ilk parçanın gelmesi, örneğin büyük bir model belleğe yüklenirken, biraz zaman alabilir. Üç nginx ayarı, bunun dışarıdan nasıl göründüğünü belirler.
| Direktif | Varsayılan | Belgeler ne diyor |
|---|---|---|
| proxy_buffering | on | Tamponlama devre dışı bırakıldığında yanıt, alınır alınmaz hemen ve eşzamanlı olarak istemciye iletilir. Etkin olduğunda nginx yanıtı önce tamponlara kaydeder. |
| proxy_read_timeout | 60s | Zaman aşımı yalnızca art arda gelen iki okuma işlemi arasında geçerlidir, yanıtın tamamı için değil. Proxy'lenen sunucu bu süre içinde hiçbir şey göndermezse bağlantı kapatılır. |
| proxy_http_version | nginx 1.29.7'den itibaren 1.1 | 1.29.7'den önce varsayılan 1.0 idi. Keepalive bağlantıları için 1.1 veya 2 sürümü önerilir. |
Belgelerden bir ifade değil, bizim okumamız: bir yanıtın yazıldıkça görünmesini istiyorsanız Ollama location'ı için proxy_buffering'i kapatın; model yüklenirken bir dakikadan uzun süre sessiz kalabiliyorsa proxy_read_timeout değerini artırın. proxy_http_version 1.1 ayarını açıkça yapmak her sürümde zararsızdır.
Hepsini bir araya getirelim
Bu yapılandırma, yukarıdaki direktifleri tek bir sunucu adı için birleştirir. Belgelenmiş direktiflerden oluşan bizim derlememizdir; bu yüzden yeniden yüklemeden önce nginx -t ile sınayın.
| Satır | Neden |
|---|---|
| server { | Ollama adı için tek bir server bloğu |
| listen 443 ssl; | HTTPS |
| server_name ollama.example.com; | kendi alan adınız |
| ssl_certificate /etc/ssl/ollama.crt; | sertifika; ara sertifikalar ondan sonra gelir |
| ssl_certificate_key /etc/ssl/ollama.key; | özel anahtar; yalnızca gerektiği kadar okunabilir |
| auth_basic "ollama"; | parolayı açar |
| auth_basic_user_file /etc/nginx/ollama.htpasswd; | kullanıcıların tutulduğu yer |
| location / { | her şey Ollama'ya gider |
| proxy_pass http://localhost:11434; | Ollama SSS sayfasından |
| proxy_set_header Host localhost:11434; | Ollama SSS sayfasından |
| proxy_http_version 1.1; | keepalive için önerilir |
| proxy_buffering off; | yanıtın akması için |
| proxy_read_timeout 300s; | yavaş gelen ilk parçaya izin verir |
| } | location sonu |
| } | server sonu |
Diğer kapıları kapatın
Proxy, ancak insanlar Ollama'ya veya arkasındaki uygulamaya başka bir yoldan ulaşamıyorsa işe yarar. Ollama varsayılan adresinde kalır ve yalnızca kullandığınız adreslere izin veren bir güvenlik duvarı kurulur.
| Görev | Ubuntu belgelerinden komut |
|---|---|
| Güvenlik duvarını açın | sudo ufw enable |
| Bir porta izin verin | sudo ufw allow 22 |
| Tek bir adresin tek bir porta erişmesine izin verin | sudo ufw allow proto tcp from 192.168.0.2 to any port 22 |
| Bir alt ağın tamamına izin verin | adresi 192.168.0.0/24 ile değiştirin |
| Durumu kontrol edin | sudo ufw status |
Ubuntu sayfası, UFW'nin başlangıçta devre dışı olduğunu söyler. SSH üzerinden kendinizi dışarıda bırakma konusunda bir uyarı içermez. Önerimiz: uzaktan eriştiğiniz bir sunucuda güvenlik duvarını açmadan önce SSH portunuza izin verin ve 443 numaralı porta yalnızca ona ihtiyacı olan adreslerden izin verin.
Kaynaklar
Sırada ne okunmalı
- VPS üzerinde Open WebUI: Docker ile çalıştırın ve Ollama'ya bağlayınOpen WebUI'yi Docker ile çalıştırıp kendi sunucunuzda Ollama'ya bağlayın: komutlar, ilk hesap, iki bağlantı türü ve güncelleme.
- Yerel bir modeli kodunuzdan çağırmak: Ollama'da yapılandırılmış çıktılar ve OpenAI uyumlu APIYerel bir modelin çıktısını JSON Schema ile sınırlayın ve Ollama'yı OpenAI tarzı istemcilerden çağırın: resmî belgeler ne diyor ve nelerin desteklenmediği.
- Yerel bir model neler yapabilir? Ollama'da tools, thinking, vision ve embedding ile bir VPS'e neyin sığdığıTools, thinking, vision, embedding: Ollama kütüphanesindeki etiketlerin anlamı, hangi modellerin bunları taşıdığı ve indirmelerin ne kadar büyük olduğu.
- Ollama'yı VPS'e kurmak ve çalışır tutmak: kurulum, systemd servisi, ayarlar ve güncellemelerOllama'yı bir Linux VPS'e kurun ve çalışır tutun: kurulum komutu, systemd servisi, ortam değişkenleri, model depolama ve güncellemeler, resmî belgelerden.