[ Megoldva ] A legkisebb webszerver?

Van egy levelezőszerverem, ami csak levelez, így nincs rajta webszerver.

Szeretném elérni, hogy a levelezőszerver címét a böngészőbe beírva, mégiscsak megjelenjen egy statikus oldal.

Ehhez keresnék egy egyszerű, minimális - akár 1 fájlos - pici, de azért biztonságos webszervert.

Tippek?

Hozzászólások

a python beepitett http szervere, azzal egy par soros szkript kiszolgalja az oldalad, csak kell hozza python, ami ha nincs a gepen, akkor mar nem 1 file :)

“Any book worth banning is a book worth reading.”

Esetleg lighttpd...? Könnyű felrakni, konfigolni, egy static html kiszolgál.

"A megoldásra kell koncentrálni nem a problémára."

Szerkesztve: 2020. 01. 07., k – 11:12

Szerintem GO-ban elég egyszerű (max pár sor). A kész binárisra meg csinálsz systemd unitot (ha systemd van) és kész is vagy.

Szerkesztve: 2020. 01. 07., k – 11:40

Egy csúnya, ám faék egyszerű megoldás:

$ sudo apt install xinetd

/etc/xinetd.d/sajat_web tartalma:

service http
        disable         = no
        protocol        = tcp
        wait            = no

        server          = /bin/cat
        server_args     = /tmp/teszt.html
        user            = daemon
}

Ekkor egy webböngésző amint rácsatlakozik, megkap egyetlen fix HTML oldalt, bármit is kért. Ha képet is akarsz beletenni, akkor az egy szem HTML-be kell base64-ben belepakolni.
Ha picit szebben akarod csinálni, akkor HTTP fejléc szöveget is beleírhatsz a kiadott fájlba.

Ha pedig bármi SSL socket kell, például HTTPs, akkor pedig az stunnel lesz a barátod. Ott két lehetőség közül is választhatsz:
 a.) SSL port ---> imént megcsinált xinetd natív portja
 b.) SSL port ---> közvetlenül cat /tmp/teszt.html

Az xinetd vagy a stunnel nagyon kellemes. Komplett kiszolgálót csinálhatsz TCP/IP programozás nélkül.
      xinetd--> [ STDIN-alkalmazásod-STDOUT ]-->xinetd

Ez tetszik! Nem is hallottam még erről.

 

Szerk.: Közel 8 éves a bináris és simán megy egy friss Ubuntu-n :D

Szerk. 2: Amúgy valaki tudja, hogy licence ügyileg hova tartozik ez? Konkrét licence-t sehol nem találok. Az IBM trademark listában sincs benne. PD lenne?

"Errors are red
My screen in blue
Someone help me
I've deleted Sys32"

A licenc ott van az oldal végén:

These 200 lines of source code is offered as a sample worked example. This is all basic UNIX systems programming and most programmers would come up with something similar, so it cannot be copyrighted as original work.

You are free to use it for any purpose with no limitations and no warrantee given or implied. If you do use it for some project or product, then a link to this web page or reference to it is recommended, but it is completely optional.

Rust-ban is csak pár sor egy socketszerver, ami kidob egyetlen statikus HTML-t:

use std::fs;
use std::io::Write;
use std::net::TcpListener;

fn main() {
    let listener = TcpListener::bind("[::]:8000").unwrap();
    loop {
        if let Ok((mut socket, _addr)) = listener.accept() {
            if let Ok(contents) = fs::read_to_string("/tmp/teszt.html") {
                socket.write(contents.as_bytes()).unwrap();
            }
        }
    }
}

rustc -O teszt.rs

> Van egy levelezőszerverem

> a levelezőszerver címét a böngészőbe beírva

ezt CF-rel hogy? van már rá valami új funkciójuk?

mert ha jól emlékszem akkorról amikor használtam, be kell rájuk állítani a domained NS-ét, akkor tudsz weboldalt csinálni náluk a domainedre, de az email forgalmat proxyzni fogja az ember szerverére?

ha jól értem, a weboldal címe := email szerver címe, tehát 

- ha bekapcsolod a "felhőt" az adott dns rekordon, tudsz CF-es weboldalt futtatni rajta, de az IP a CF-hez fog mutatni, ahol ha nem proxyzzák az email portokat, nem lesz elérhető az email szolgáltatása.

- ha kikapcsolod a "felhőt", nem fogja el a CF a forgalmat hogy kiszolgálja weben. (az email szolgaltatas jo marad)

nem tudom, miből áll a kérdező email szolgáltatása. talán az SRV rekordok segíthetnek; ha a kliensei szoftverei támogatják, lehet a levelező programban beállított "cím", domain név az SRV rekordjai révén egy IP-re irányítja az smtp/imap/etc forgalmat mint ami a domain név A rekordja mögötti webkiszolgálóé. ezúton t'án szétválasztható egy bizonyos domain név mögötti email/web kiszolgálás a CF adta lehetőségekkel.

busybox? Minden(?) gépen alapból fenn van, csak nem biztos hogy a http szervert beleforgatták.

* Én egy indián vagyok. Minden indián hazudik.