首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将apache2摘要认证信息传递给mod_wsgi运行的wsgi脚本

在Apache Web服务器和mod_wsgi应用程序之间,您可以使用mod_wsgi-express模块来实现摘要认证。这将允许从mod_wsgi运行的WSGI脚本通过摘要认证的方式来访问您的网站。以下是实现这个步骤的步骤:

首先,确保您的web服务器是启动状态,并且您已经加载了mod_ssl和mod_headers模块。您还需要将以下行添加到您的Apache配置文件中:

代码语言:php
复制
WSGIScriptAlias / /path/to/your/wsgi/script.wsgi
<Directory /path/to/your/wsgi>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    Header set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
</Directory>

然后在您的wsgi脚本中获取并摘要认证用户的身份,您可以在脚本的开头添加以下行:

代码语言:python
复制
import logging
import sys
import apache2.authz
import base64

log = logging.getLogger(__name__)

# Replace with the actual user authentication data
authenticating_username = 'your_username'
authenticating_password = 'your_password'

logged_in = False

while not logged_in:
    log.debug('Attempting to authenticate with username and password')
    try:
        user_authenticated = apache2.authz.authenticate(authenticating_username, authenticating_password)
        if user_authenticated:
            logged_in = True
            print('Authentication successful')
        elif apache2.authz.error_code != apache2.authz.AUTH_FAIL_IF_DENIED:
            print('Authentication failed')
        else:
            # Handle HTTP authentication errors here
            print(f'Authentication failed: ')
    except Exception as e:
        log.error(str(e))
        try:
            raw_input(f'username "" password: ')
        except Exception as e:
            log.error(str(e))

在这个示例中,我们会用真实的用户身份来进行认证。如果你想要在认证过程中让用户输入密码进行验证,可以将authenticating_username和authenticating_password变量替换为用户输入的字符串。

然后我们可以将WSGI_APPLICATION变量分配给您的WSGI脚本,以便它可以通过摘要认证的方式来访问您的网站。

最后,运行以下命令来启动Apache Web服务器:

代码语言:txt
复制
sudo systemctl start httpd
sudo systemctl enable httpd

通过这些步骤,您就可以实现从Django或其他WSGI应用程序通过Apache Web服务器摘要验证的方式来访问您的网站了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在Ubuntu 16.04上使用Apache和mod_wsgi为Django应用程序提供服务

然后,我们将在应用程序前设置Apache,以便在需要应用程序逻辑请求传递给Django应用程序之前,它可以直接处理客户端请求。...我们将使用mod_wsgi可以通过WSGI接口规范与Django通信Apache模块来完成此操作。...它接收客户端连接将被转换为Django应用程序使用该mod_wsgi模块所期望WSGI格式。这应该在安装之前自动启用。...我们将使用守护进程模式来运行WSGI进程,这是推荐配置。我们可以使用该WSGIDaemonProcess指令进行设置。 该指令为进程采用任意名称。我们myproject保持一致。...最后,我们需要设置脚本别名,以便Apache根域请求传递给wsgi.py文件: . . . ​

2.1K11

如何使用Apache驱动Django

然后,我们将设置Apache,以便在需要应用程序逻辑请求传递给Django应用程序之前,它可以直接处理客户端请求。...它将使用Apachemod_wsgi模块执行此操作,该模块可以HTTP请求转换为由WSGI规范定义可预测应用程序格式。...创建Django项目 由于我们已经在~/myproject有一个一级项目目录,我们告诉Django在这里安装文件。该命令创建包含实际代码第二级目录。它还将在当前项目目录中放置管理脚本。...配置Apache 我们可以Apache配置为前端。它接收客户端连接将被转换为Django应用程序使用mod_wsgi模块所期望WSGI格式。...最后,我们需要设置脚本别名,以便Apache根域请求传递给wsgi.py文件: . . .

4.1K50

Apache2 Django {“detail”:”Authentication credentials were not provided.”}

其实项目已经是很久之前就完成了,部署到服务器上去之后后续工作由于懒散一致没做,近几天开始进行重新继续项目之后发现一个很蛋疼问题,在iOS端提交数据时候提示: {“detail”:”Authentication...,搜索之后发现原来是mod_wsgi转发数据时候authorization header 去掉了,所以会导致认证失败。...questions/26906630/django-rest-framework-authentication-credentials-were-not-provided 修复也很简单,修改/etc/apache2...文件添加如下一行即可: WSGIPassAuthorization On ☆文章版权声明☆ * 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《Apache2...限制访问频率》 Django input value值被截断 ngix+uwsgi+django 以及阿里云rds数据库数据导入 Django APScheduler + uwsgi 定时任务重复运行

55520

Python Web 部署方式大全

FastCGI接口方式采用C/S结构,可以HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。...Web serverCGI环境变量和标准输入发送到FastCGI子进程php-cgi。 FastCGI子进程完成处理后标准输出和错误信息从同一连接返回Web Server。...“中间件”组件可以执行以下功能: 重写环境变量后,根据目标URL,请求消息路由到不同应用对象。 允许在一个进程中同时运行多个应用程序或应用框架。...低内存占用(实测为apache2mod_wsgi一半左右)。 多app管理。 详尽日志功能(可以用来分析app性能和瓶颈)。 高度可定制(内存大小限制,服务一定次数后重启等)。...注:mod_wsgi(apache模块)其实也是实现了wsgi协议一个模块,现在几乎不废弃了,所以也不多说了,感兴趣自己查一下吧。

1.5K40

Django用Apache和mod_wsgi部署

第三种就是用sc创建服务来运行,不过这个需要文件是程序必须是二进制可执行程序,这就排除了脚本语言和虚拟机语言;其次,程序必须按系统服务格式编写,编写过程繁琐,可以参考下面的连接: https://...不过这个有现成轮子可以拿来用,就用脚本语言、python/bat等可以直接用,他名字就是EasyService。但是今天要讲不是这个,是用apache和mod_wsgi来部署django。...后面可以从windows迁移到linux也可以运行的话,用Apache httpd来运行,是非常不错 准备 环境准备 python3.7 mysql5~8 还有apache -httpd mod_wsgi.../~gohlke/pythonlibs/#mod_wsgi 这里下载 配置apache和mod_wsgi 查看apache配置信息mod_wsgi-express module-config, 如果执行.../mod_wsgi.cp37-win32.pyd" WSGIPythonHome "c:/python37" 把这个信息追加到apache配置文件httpd.conf最后。

1.6K10

在Apache服务器上同时运行多个Django程序方法

2018] [wsgi:error] [pid 10994:tid 139733405464320] [client 60.207.237.35:59123] mod_wsgi (pid=10994)...在脚本之家搜索到了一篇名为在Apache服务器上同时运行多个Django程序方法,该文章声称可以在apache配置文件中使用SetEnv指令来部署多站点Django, 但是在wsgi.py中已经存在...即如果在单一进程中,django会使用最先运行那个站点配置文件,所以我们要么使用os.environ,要么使用mod_wsgidaemon模式(未尝试)。...我去掉apache配置文件中SetEnv,wsgi.py中os.environ.setdefault()换为os.environ,重启apache,问题解决。 深入分析 原因呢?...我去掉了wsgi.py中os.environ语句,在apache配置文件中使用SetEnv进行配置文件选择,奇怪是不论在SetEnv后面有没有使用引号,该问题都无法解决,有时候报错为模块找不到(与背景中报错信息相同

3.5K30

flask wsgi部署

因此我们需要使用mod_wsgi这个模块使得flask能够在apache上进行部署,mod_wsgi模块是一个python写ApacheFastCGI模块。...mod_wsgi模块: 说明:参考链接大神使用.so模块是需要通过访问外国网站得到,所以我们需要使用whl文件,mod_wsgi版本选择是非常有讲究,它需要对应apache对应vc编译版本...下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 选择版本:mod_wsgi‑4.6.4+ap24vc14‑cp36‑cp36m‑win_amd64...文件进行安装: pip install (2)安装成功后,运行下面的命令: mod_wsgi-express module-config (3)上面这条命令成功运行后,我们可以得到三条信息...下面这段复制到conf文件最底部,并且修改路径为自己路径 ServerAdmin example@xx.com DocumentRoot E:\

1.2K30

OpenStack运维介绍及Keystone组件安装

缓存服务memecached通常运行在控制节点。在生产部署中,我们推荐联合启用防火墙、认证和加密保证它安全。...master01.boysec.cn" >> /etc/httpd/conf/httpd.conf 创建配置文件 安装完mod_wsgi包后,会生成 wsgi-keystone.conf 这个文件,文件中配置了虚拟主机及监听了...5000端口,mod_wsgi就是python网关 ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ 开启服务 systemctl...enable httpd.service systemctl start httpd.service 配置管理员账户环境变量 这些环境变量用于创建角色和项目使用,但是创建角色和项目需要有认证信息,所以通过环境变量声明用户名和密码等认证信息...,欺骗openstack已经登录且通过认证,这样就可以创建项目和角色;也就是把admin用户验证信息通过声明环境变量方式传递给openstack进行验证,实现针对openstack非交互式操作 cat

94920
领券