J'ai un script qui génère un rapport quotidien que je veux servir au soi-disant grand public. Le problème est que je ne veux pas ajouter à mes maux de tête la maintenance d’un serveur HTTP (par exemple Apache) avec toutes les configurations et les implications en matière de sécurité.
Existe-t-il une solution simple et simple pour servir une petite page HTML sans avoir à configurer un serveur HTTP complet?
Réponses:
Oui, Nweb.
Peut être trouvé ici: nweb.c
(précédemment sur ibm.com )
Pour compiler nweb.c:
la source
Essayez SimpleHTTPServer :
Il devrait servir tout ce qui est dans le CWD (par exemple, index.html) à http://0.0.0.0:8000 .
la source
python3 -m http.server 1337
. Vous ne pouvez pas spécifier à quelle adresse IP se lier à ce que je sache. Remarque: pour écouter le port 80, vous devez disposer des privilèges root, par exemple:sudo python3 -m http.server 80
twistd -n web -p 8000 --path .
--bind <address>
a été ajouté en python 3.4 .python -m SimpleHTTPServer 3000
Il y a une grande liste de liners de serveur statique http :
Par exemple:
Twisted (Python)
Erlang :
Plack (Perl)
webfs
Ruby 1.9.2+
la source
Utilisez
node.js
, rapide et léger.Ou
utilisez simplement la
nc
commande netcat pour démarrer un serveur Web rapide sur un port et servir le contenu d'un fichier, y compris les en-têtes de réponse du serveur.Référence de Wikipedia:
http://en.wikipedia.org/wiki/Netcat#Setting_up_a_one-shot_webserver_on_port_8080_to_present_the_content_of_a_file
la source
nc
solution basée :). Notez que les-ne
indicateurs pourecho
ne peuvent pas être portables, utiliser laprintf
commande peut être une meilleure alternative.Depuis la version 5.4.0, PHP a également un serveur Web intégré :
Vous pouvez spécifier le répertoire de documents du serveur Web avec
-t
, par exemple:Si vous voulez pouvoir accéder au serveur via le réseau, alors:
la source
Node a un module de serveur HTTP simple, rapide et léger. À installer:
(En supposant que vous avez
node
etnpm
déjà installé.)Pour l'exécuter, utilisez le répertoire actuel en tant que racine du site Web:
Cela crée un serveur
http://0.0.0.0:8080/
.la source
npm install -D http-server
dans le répertoire du projet, puis j'ajoute les lignes suivantes à monpackage.json
fichier:"scripts": { "build": "webpack && cd src/public && http-server" },
maintenant, je dois juste exécuternpm run build
le répertoire du projet pour démarrer le serveur HTTP, en écoutant le port 8080 par défaut.python3 -m http.server
", mais c'est un seul thread et un seul client peut télécharger à la fois, les autres doivent attendre. Cette solution avec Node.js fonctionne mieux, en raison de la nature asynchrone de Node. Si vous souhaitez partager un fichier avec plusieurs personnes, utilisez ceci.Essayez d'utiliser
SimpleHTTPServer
en Python.Les deux premières lignes sont configurées pour le serveur Web. La dernière ligne crée un serveur Web simple, ouvert sur le port 8080, qui ne sert que les fichiers de
~/public_html
. Si un seul fichier est dans ce répertoire, seul qui est exposé:http://localhost:8080/output.txt
.la source
.py
fichier, puis de l’exécuter avecpython
(ou de la rendre exécutable). N'oubliez pas que vous devez utiliser un interpréteur Python 2.x.Vous pouvez utiliser Xinetd . Placez le fichier de configuration suivant dans /etc/xinetd.d/ et le service xinetd reload :
Fonctionne pour mes besoins de redirection:
la source
Serveur HTTP Oldschool Ruby WEBrick :
Assurez-vous de modifier le
DocumentRoot
pour votre configuration. Voir aussi ceci .la source
Une autre option serait d'installer lighttpd. Voici les étapes suggérées pour installer lighttpd sur un Unbuntu 12.04 LTS.
Remarque: Documentroot est l'endroit où tous les fichiers accessibles sur le Web seront des endroits. L'emplacement est / var / wwww
L'étape ci-dessus va installer un serveur Web lighttpd de base. Pour plus d'informations, reportez-vous aux références suivantes
Références:
la source
Simple Ruby un liner pour servir un répertoire:
la source
./devd -o -a -P devd:devd .
https://github.com/cortesi/devd/releases
la source
Une simple correction / amélioration d'une réponse légèrement votée légèrement injustement (à mon humble avis) pourrait également fonctionner. Configurons d'abord le fichier html ...
Maintenant, vous pouvez le servir avec ce one-liner:
Cette idée de base se prête à d'autres astuces qui pourraient vous convenir via d'autres
cat
idées ou sous-shell, telles que:la source
essayez caddie
curl https://getcaddy.com | bash
servir le contenu de / var / www
caddy -root /var/www "browse"
maintenant vous trouvez le serveur sur http: // localhost: 2015
la source
caddy
partir d'un répertoire local et aime avoir un serveur web moderne et sécurisé.Exemple Netcat simple à mettre en script bash:
la source
while [ 1=1 ] ; do echo "TEST" | nc -l 80; done
- aller à 127.0.0.1 renvoie en effet le contenu. Je devais cependant le faire en tant que root. Donc, d'une manière extrêmement rudimentaire, le travail peut être accompli, et j'aime ça. J'ai essayé d'aller à mon-hostnname.local sur une autre machine du réseau local et cela a fonctionné aussi.SFK mérite d'être mentionné ici
http://stahlworks.com/dev/swiss-file-knife.html
un excellent outil polyvalent sans dépendances
disponible dans les saveurs deb et rpm
sfk httpserv -port 1234
servira le répertoire courant
sfk httpserv -port 1234 -rw
permettra également le téléchargement de fichiers
la source
Pure bash: Un serveur Web dans un script shell .
En outre, vous aurez besoin de xinetd (disponible dans n’importe quelle distribution) pour écouter le port et exécuter le script si nécessaire, vous évitant ainsi de coder tcp stack etc en bash.
la source
J'ai utilisé ces instructions pour installer un serveur Web sur ma machine CentOS sans avoir à utiliser sudo ou à toucher aucun fichier système:
Premier noeud d'installation:
puis installez le serveur http:
puis exécutez le serveur http sur le port 12321:
la source
J'ai
nc
un peu amélioré la solution pour qu'elle:filename=
indice/tmp/serveFile-$PORT
afin que vous puissiez le tuer facilement plus tard..
On pourrait aussi utiliser
nc -k -l ...
mais de cette façon vous pouvezla source