toolkitbox

~/ / 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.

DirektifVarsayılanBelgeler ne diyor
auth_basic string | off;offParametre, 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;yokDosyada 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.

DirektifBelgelerden örnek
listenlisten 443 ssl;
server_nameserver_name www.example.com;
ssl_certificatessl_certificate www.example.com.crt;
ssl_certificate_keyssl_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.

DirektifVarsayılanBelgeler ne diyor
proxy_bufferingonTamponlama 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_timeout60sZaman 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_versionnginx 1.29.7'den itibaren 1.11.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ırNeden
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örevUbuntu belgelerinden komut
Güvenlik duvarını açınsudo ufw enable
Bir porta izin verinsudo ufw allow 22
Tek bir adresin tek bir porta erişmesine izin verinsudo ufw allow proto tcp from 192.168.0.2 to any port 22
Bir alt ağın tamamına izin verinadresi 192.168.0.0/24 ile değiştirin
Durumu kontrol edinsudo 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ı