8.0 KiB
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.