wwwhisper 开源项目使用教程
wwwhisperAccess control for web servers项目地址:https://gitcode.com/gh_mirrors/ww/wwwhisper
1. 项目介绍
wwwhisper 是一个用于 HTTP 服务器的授权层,控制哪些资源可以被哪些访问者访问。它与 nginx 配合使用,能够基于访问者的电子邮件地址授予对 HTTP 资源的访问权限。wwwhisper 使用无密码的访问令牌来证明访问者拥有允许的电子邮件地址。它是一个应用无关的解决方案,可以用于任何 HTTP 服务器返回的内容,包括动态内容、静态文件以及后端服务器生成的内容。wwwhisper 不需要应用程序或后端的支持,并提供了一个管理 Web UI 来操作权限。
2. 项目快速启动
安装与配置
以下步骤演示如何在 Debian 衍生发行版(包括 Ubuntu)上安装和配置带有 wwwhisper 认证的 nginx。这些步骤应易于调整以在其他 POSIX 系统上工作。
安装依赖
首先,确保系统上安装了必要的依赖:
sudo apt-get update
sudo apt-get install -y nginx python3-pip
克隆 wwwhisper 仓库
git clone https://github.com/wrr/wwwhisper.git
cd wwwhisper
配置 wwwhisper
编辑 run_wwwhisper_for_site.sh
脚本,配置你的站点信息:
#!/bin/bash
WWWHISPER_DIR=$(pwd)
SITE_NAME="example.com"
WWWHISPER_PORT=8080
# 启动 wwwhisper 服务
python3 manage.py runserver $WWWHISPER_PORT &
# 配置 nginx
cat <<EOF > /etc/nginx/sites-available/$SITE_NAME
server {
listen 80;
server_name $SITE_NAME;
location / {
proxy_pass http://127.0.0.1:$WWWHISPER_PORT;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
}
EOF
ln -s /etc/nginx/sites-available/$SITE_NAME /etc/nginx/sites-enabled/
sudo systemctl restart nginx
启动服务
运行配置脚本:
./run_wwwhisper_for_site.sh
3. 应用案例和最佳实践
应用案例
wwwhisper 可以用于保护静态文件、动态内容以及后端服务器生成的内容。例如,它可以用于保护公司内部文档、私有 API 端点或仅限特定用户访问的 Web 应用程序。
最佳实践
- 多用户服务器:在多用户服务器上,确保受保护的静态文件和通信套接字具有正确的文件权限。
- 后端服务器访问:如果 nginx 将请求委托给后端服务器,确保后端服务器不可外部访问。
- SSL 加密:对于重要内容,使用 SSL 加密以确保数据传输的安全性。
4. 典型生态项目
wwwhisper 可以与以下项目结合使用,以增强其功能:
- nginx:作为主要的 HTTP 服务器,与 wwwhisper 配合使用以实现访问控制。
- Heroku:wwwhisper 可以作为 Heroku 的附加组件,用于 Ruby 和 Node.js 应用程序。
- Let's Encrypt:用于自动获取和更新 SSL 证书,确保网站的安全性。
通过这些项目的结合使用,可以构建一个安全、可靠且易于管理的 Web 服务器环境。
wwwhisperAccess control for web servers项目地址:https://gitcode.com/gh_mirrors/ww/wwwhisper