Mam skrypt, który generuje codzienny raport, który chcę podawać tak zwanej opinii publicznej. Problem polega na tym, że nie chcę dodawać do problemów związanych z utrzymaniem serwera HTTP (np. Apache) ze wszystkimi konfiguracjami i implikacjami bezpieczeństwa.
Czy istnieje martwe, proste rozwiązanie do obsługi jednej małej strony HTML bez konieczności konfigurowania pełnego serwera HTTP?
Odpowiedzi:
Tak, nweb.
Można znaleźć tutaj: nweb.c
(poprzednio w ibm.com )
Aby skompilować nweb.c:
źródło
Wypróbuj SimpleHTTPServer :
Powinien obsługiwać wszystko, co jest w CWD (np. Index.html) pod adresem http://0.0.0.0:8000 .
źródło
python3 -m http.server 1337
. Nie mogę określić, z którym adresem IP powiążę, o ile mi wiadomo. Uwaga: Aby nasłuchiwać na porcie 80, musisz mieć uprawnienia roota, np .:sudo python3 -m http.server 80
twistd -n web -p 8000 --path .
--bind <address>
został dodany w Pythonie 3.4 .python -m SimpleHTTPServer 3000
Istnieje duża lista jedno-liniowych statycznych serwerów HTTP :
Na przykład:
Twisted (Python)
Erlang :
Plack (Perl)
webfs
Ruby 1.9.2+
źródło
Zastosowanie
node.js
, szybki i lekki.Lub
wystarczy użyć prostej
nc
komendy netcat, aby uruchomić szybki serwer WWW na porcie i podać zawartość pliku, w tym nagłówki odpowiedzi serwera.Referencje z Wikipedii:
http://en.wikipedia.org/wiki/Netcat#Setting_up_a_one-shot_webserver_on_port_8080_to_present_the_content_of_a_file
źródło
nc
rozwiązanie oparte :). Zauważ, że-ne
flagi dlaecho
mogą nie być przenośne,printf
zamiast tego użycie polecenia może być lepszą alternatywą.Od wersji 5.4.0 PHP ma również wbudowany serwer WWW :
Możesz określić katalog dokumentów serwera WWW
-t
, na przykład:Jeśli chcesz mieć dostęp do serwera przez sieć, to:
źródło
Węzeł ma prosty, szybki i lekki moduł serwera HTTP. Żeby zainstalować:
(Zakładając, że masz
node
inpm
już zainstalowałeś).Aby go uruchomić, używając bieżącego katalogu jako katalogu głównego witryny:
Spowoduje to utworzenie serwera
http://0.0.0.0:8080/
.źródło
npm install -D http-server
wewnątrz katalogu projektu, a następnie dodaję następujące wiersze do mojegopackage.json
pliku:"scripts": { "build": "webpack && cd src/public && http-server" },
teraz muszę tylko uruchomićnpm run build
katalog projektu, aby uruchomić serwer HTTP, domyślnie nasłuchując na porcie 8080.python3 -m http.server
”, ale jest to jednowątkowy i tylko 1 klient może pobierać naraz, inni muszą czekać. To rozwiązanie z Node.js działa lepiej, ze względu na asynchroniczny charakter Node. Jeśli chcesz udostępnić plik kilku osobom, użyj tego.Spróbuj użyć
SimpleHTTPServer
w Pythonie.Pierwsze dwa wiersze są skonfigurowane dla serwera WWW. Ostatnia linia tworzy prosty serwer WWW, otwarty na porcie 8080, który obsługuje tylko pliki z
~/public_html
. Jeśli tylko jeden plik znajduje się w tym katalogu, to tylko, że jest narażona:http://localhost:8080/output.txt
.źródło
.py
pliku, a następnie uruchom go za pomocąpython
(lub uczyń go wykonywalnym). Pamiętaj, że musisz uruchomić interpreter Pythona 2.x.Możesz piggy back na xinetd . Umieść następujący plik konfiguracyjny w /etc/xinetd.d/ i przeładuj serwis xinetd :
Działa dla moich celów przekierowania:
źródło
Serwer HTTP Oldschool Ruby WEBrick :
Pamiętaj, aby zmodyfikować
DocumentRoot
dla swojej konfiguracji. Zobacz także to .źródło
Inną opcją byłoby zainstalowanie lighttpd. Poniżej przedstawiono sugerowane kroki instalacji lighttpd na Unbuntu 12.04 LTS.
Uwaga: Documentroot to miejsce, w którym będą znajdować się wszystkie pliki dostępne w Internecie. Lokalizacja to / var / wwww
Powyższy krok zainstaluje podstawowy serwer WWW lighttpd. Aby uzyskać więcej informacji, zapoznaj się z następującymi źródłami
Bibliografia:
źródło
Prosty Rubinowy jeden linijka do obsługi katalogu:
źródło
./devd -o -a -P devd:devd .
https://github.com/cortesi/devd/releases
źródło
Może również działać prosta poprawka / rozszerzenie nieco niesprawiedliwie (imho) odrzuconej odpowiedzi. Najpierw skonfigurujmy plik HTML ...
Teraz możesz podawać to za pomocą tego linijki:
Ta podstawowa idea nadaje się do innych sztuczek, które mogą działać dla Ciebie za pomocą innych
cat
lub podpowłokowych pomysłów, takich jak:źródło
Prosty przykład netcata do umieszczenia w skrypcie bash:
źródło
while [ 1=1 ] ; do echo "TEST" | nc -l 80; done
- przejście do 127.0.0.1 rzeczywiście zwraca zawartość. Musiałem to zrobić jako root. A więc w niezwykle prymitywny sposób - może wykonać robotę i to mi się podoba. Próbowałem przejść do my-hostnname.local na innym komputerze w sieci LAN i to też zadziałało.SFK warto tutaj wymienić
http://stahlworks.com/dev/swiss-file-knife.html
doskonałe narzędzie wielofunkcyjne bez żadnych zależności
dostępne w wersjach deb i rpm
sfk httpserv -port 1234
będzie obsługiwał bieżący katalog
sfk httpserv -port 1234 -rw
pozwoli również na przesyłanie plików
źródło
Pure bash: serwer WWW w skrypcie powłoki .
Będziesz także potrzebował xinetd (uważam, że jest dostępny w dowolnej dystrybucji), aby nasłuchiwać portu i uruchamiać skrypt w razie potrzeby, więc nie musisz kodować stosu TCP itp. W bash.
źródło
spróbuj caddy
curl https://getcaddy.com | bash
wyświetlać treści z / var / www
caddy -root /var/www "browse"
teraz znajdziesz serwer na http: // localhost: 2015
źródło
Skorzystałem z tych instrukcji, aby zainstalować serwer WWW na moim komputerze CentOS bez konieczności używania sudo lub dotykania jakichkolwiek plików systemowych:
Pierwszy węzeł instalacyjny:
następnie zainstaluj serwer http:
następnie uruchom serwer HTTP na porcie 12321:
źródło
Ulepszyłem to
nc
rozwiązanie, więc:filename=
podpowiedź,/tmp/serveFile-$PORT
, abyś mógł później łatwo go zabić..
Można również użyć,
nc -k -l ...
ale w ten sposób możeszźródło