Я использую webfsd , облегченный HTTP-демон, чтобы подавать статический контент в http://localhost:80
следующим образом:
sudo webfsd -R ~/Documents/www/ -p 80 -f index.html
Но я должен запускать это из командной строки каждый время. Я предполагаю, что не могу добавить sudo
команды для запуска программ. Итак, как я могу заставить его работать без необходимости каждый раз вызывать его?
(я бы предпочел , чтобы он запускался при загрузке и был доступен без необходимости входа в систему, даже если это означает, что мне нужно переместить местоположение файлов. Но начало, когда я вхожу в систему, является приемлемым призом за второе место. Если это имеет значение, я хотел бы позже поэкспериментировать с HTTPS.)
/etc/init/webfs.conf
:
description "WebFS server"
start on (local-filesystems and net-device-up)
respawn
exec webfsd -F -p 80 -u d3vid -g d3vid /home/d3vid/Documents/www/ -f index.html
Аргументы -u
и -g
действительно важны. Они удаляют привилегии root после привязки порта ... Это означает, что нет доступного по сети процесса, работающего от имени root, который можно было бы использовать.
Другая идея - запускать его на высоком порту (> 1024), как вы, автоматически запускать то, что вам нравится ... А затем либо использовать реальный сервер для обратного прокси (nginx - это общий и легкий инструмент) из порта 80 ... или просто используйте перенаправление iptables.
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 10010 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 10010
Преимущество webfs заключается в том, что никогда не запускается от имени root ... Но тогда вам просто нужно будет запускать команды iptable
от имени root при каждой загрузке. Качели и карусели.
В целом, если вы не выставляете сервер в интернет напрямую, первый маршрут, вероятно, достаточно безопасен.
nginx
... Чтобы дать вам некоторое представление о том, что значит эффективный, у меня есть веб-сервер, на котором размещено около 20 доменов, некоторые из них делают довольно серьезный трафик. На четыре рабочих процесса nginx приходится 15 МБ ОЗУ в совокупности и нет видимого процессорного времени. Это безумие.