wiki/content/tur/guides/usersites.md

8.0 KiB
Raw Blame History

title
~vern'de web siteleri nasıl barındırılır

Bu kılavuz size web sitelerini ~vern'de nasıl barındıracağınızı gösterecektir. Varsayılan olarak herhangi bir kullanıcı bir web sitesini barındırabilir. ~vern, Clearnet, Tor ağı ve I2P ağı üzerinden erişilebilen normal HTTP web sayfalarını barındırır. ~vern ayrıca HTTP web sayfalarından ayrı olan Gopher holes ve Gemini kapsüllerini de barındırır.

Yardım için yöneticilere sormadan önce lütfen sorun giderme bölümündeki düzeltmeleri deneyin.

Statik siteler

Statik dosyalar, web sunucusunun ötesinde (her zaman otomatik olarak çalışan) çalışma zamanında herhangi bir yazılıma ihtiyaç duyulmadığından, barındırılması en kolay olanlardır.

~/public_html dizinine dosya eklediğinizde, dosya <KULLANICIADI>.vern.cc konumunda görünecektir. Basit, değil mi?

Dosya izinleri konusunda dikkatli olmanız gerekmesine rağmen, ~vern'in kullandığı Nginx web sunucusu public_html dizininizi okuyabilmelidir; eğer statik web barındırma ile ilgili sorunlar yaşıyorsanız, o zaman dosya izinleri en olası nedendir. Bu sorunu düzeltmek için chmod +x ~/public_html/ -R komutunu çalıştırmanız yeterlidir.

varsayılan web sunucusu sunucu tarafı içerir destekler

CGI

CGI, bir istek alındığında yürütülen statik dosyalardır; bunlar, CGI'dan biraz daha karmaşıktır.

CGI, .cgi, .py, .sh, .pl, .lua veya .php uzantılı bir dosya oluşturularak sunulabilir. /cgi-bin içindeki tüm dosyalar da yürütülecektir. .php dosyaları PHP ile yürütülecektir. .cgi dosyaları sh ile yürütülürken. Bunun gibi bir shebang ekleyerek bunu değiştirebilirsiniz:

#!/usr/bin/env lua

print([[Content-type: text/plain

Merhaba
]])

Bu, CGI dosyasının hello.cgi konumunda olduğu varsayılarak <KULLANICIADI>.vern.cc/hello.cgi konumunda Merhaba ile sonuçlanacaktır.

derlenmiş dosyalar elbette Shebang'sız çalışır.

Not: Başvurulan herhangi bir derlenmiş dosya, php ve cgi komut dosyalarını çalıştıran php kullanıcısı için kurulmalıdır. Başvurulan paketler genel olarak kuruluysa sorun olmaz ama değilse nix-shell shebang kullanmak zorunda kalacaksınız. Bununla ilgili talimatlar şurada bulunabilir: nixos wikisi.

UNIX soketleri aracılığıyla web sunucusu

Caddy ile yapılan UNIX Soketi aracılığıyla yapılan bir web sunucusunun çok minimal bir örneğidir:

{
        admin off
}

http://
bind unix/.webserver.sock

respond "Hello ~vern!"

Not: admin off başkalarının yapılandırmanızı değiştirememesi içindir ve ayrıca 2019 bağlantı noktasının başkalarıyla çakışmayacağını da unutmayın.

Bunu ana dizininize kaydedin, caddy run çalıştırın ve https://a-<kullanıcıadı>.vern.cc adresinde web sunucusu görünmelidir. (Hayır, URL yanlış yazılmadı.)

Çoklu sites

Artık a üzerinde çalışan bir web sunucunuz var, diğer tüm harfleri kullanma zamanı!

{
        admin off
}

http://a-<KULLANICIADI>.vern.cc {
        bind unix/.webserver.sock
        respond "Hello"
}

http://b-<KULLANICIADI>.vern.cc {
        bind unix/.webserver.sock
        respond "Hello 2"
} 

şimdi bu adrese giderseniz https://b-<kullanıcıadı>.vern.cc, Hello 2 gözükecek!

UNIX dışı bir hizmete ters proxy oluşturma

Not: Mümkünse bağlantı noktalarını veya (biraz) hızı boşa harcamamak için bu yöntemi yapmak yerine kullandığınız programın belgelerini okumalısınız.

Yukarıdaki uyarıya not: Alt ana bilgisayarları kullanmak istiyorsanız ve program UNIX soketlerini destekliyorsa, UNIX soketine ters proxy oluşturmayı desteklediği için Caddy ile yönlendirme yapmaya devam edebilirsiniz. Kullanmama seçeneğiniz varsa bağlantı noktasını kullanmayın.

Bunun gibi bir Caddyfile kullanmak işe yaramalı:

{
        admin off
}

http://a-<KULLANICIADI>.vern.cc {
        bind unix/.webserver.sock
        reverse_proxy :9000
}

Kolay, demi?

Gelişmiş Örnek

Bu örnek, Caddy'nin bazı gelişmiş özelliklerini içerir ancak aynı zamanda birden fazla site eklemeyi de kolaylaştırır:

{
  admin off
  auto_https off
  order respond before reverse_proxy
  default_bind unix//home/{$USER}/.webserver.sock
}

(host) {
  @{args.0} host {args.0}-{$USER}.vern.cc
}

http://

import host ping
import host web
import host reverse

handle @ping {
  respond "PONG!"
}

handle @web {
  root * /home/{$USER}/public_html
  file_server
}

handle @reverse {
  reverse_proxy * :9000
}

respond "Nothing here!"

Eğer kafanız karıştıysa, aşağıda bir açıklama bulunmaktadır. Dosyanın ilk kısmı global yapılandırmadır.

{
  admin off
  auto_https off
  order respond before reverse_proxy
  default_bind unix//home/{$USER}/.webserver.sock
}

default_bind gerçekten kullanışlı, bu nedenle soketin bağlanacağı her rotayı belirtmemize gerek yok. {$USER} ortam değişkeninden gelir $USER ve kullanıcı adınız olur. Ek olarak, global yapılandırmaya e-postanızı ekleyebilirsiniz. email <ad@email.com>

Daha sonra snippet özelliğine bir göz atıyoruz:

(host) {
  @{args.0} host {args.0}-{$USER}.vern.cc
}

Bununla yeni bir site eklemek çok daha kolaydır. Yeni bir site eklemek için bunu yapabiliriz: import host hello, bu artık bir eşleştirici tanımı ekliyor ve şöyle görünüyor:

@hello host hello-<KULLANICIADI>.vern.cc

Parçacıklar işlevlere benzer; daha yakından bakarsanız eşleştirici tanımının nasıl oluşturulduğunu görebilirsiniz:

@{args.0} host {args.0}-{$USER}.vern.cc

{args.0} parçası hello ve {$USER}ları değiştirildi. yukarıda belirtildiği gibi yalnızca kullanıcı adınız için ortam değişkenidir.

Artık eşleştiriciyle siteyi şu şekilde halledebiliriz:

handle @hello {
  responed "Merhaba, dünya!"
}

ve hello-<KULLANICIADI>.vern.cc şimdi Merhaba, dünya! şekilde yanıt verecek.

İşleyicide siteyi nasıl yönetmek istediğinizin her yönünü tanımlayabilirsiniz. Aşağıdaki gibi basit bir yanıt verebilirsiniz:

handle @ping {
  respond "PONG!"
}

Statik bir web sitesi barındırma: (bu örnekte <KULLANICIADI>.vern.cc'yi aynı zamanda web-<KULLANICIADI>.vern.cc üzerinde de barındırıyoruz)

handle @web {
  root * /home/{$USER}/public_html
  file_server
}

Veya ters proxy yapabilirsiniz:

handle @reverse {
  reverse_proxy * :9000
}

Daha fazla bilgi için Caddy Docs'tan bu sayfaya bakın.

Gemini kapsulleri

Gemini, web sitelerini ve web sayfalarını sunmaya yönelik basit bir protokoldür. Ortalama bir web sitesi için yeterince güçlü olmasına rağmen HTTP'den çok daha basittir.

~vern kullanıcısıysanız Gemini hosting'in çalışması için hiçbir şey yapmanıza gerek kalmayacaktır. Sorun yaşıyorsanız sorun giderme bölümüne göz atın.

Gemini web sayfaları için HTML dosyalarını kullanmaz, Gemini Gemtext adı verilen kendi belge formatını kullanır, Gemtext hakkında daha fazla bilgiyi burada okuyabilirsiniz.

Gemtext dosyanızı yazdıktan sonra, onu ~/public_gemini klasörüne kopyalayabilirsiniz. <KULLANICIADI>.vern.cc adresinde mevcut olmalıdır.

Gemini, cgi dosyalarını destekler ve desteklenen tüm değişkenleri burada bulabilirsiniz

Not: Çoğu tarayıcı Gemini'yi yerel olarak desteklemez; Gemini belgelerini destekleyen özel bir tarayıcı kullanmanız gerekecektir. Resmi Gemini web sitesindeki listede bir tane bulabilirsiniz. Ayrıca sizi şuraya yönlendirmek için gp.vern.cc gibi bir Gemini proxy'sini ve Geminize Addon Gerektiğinde gp.vern.cc kullanabilirsiniz.