Django用mod_wsgi如何设置PYTHONHASHSEED env变量?

鲍勃

如何在PYTHONHASHSEED环境变量设置为random的情况下使用mod_wsgi运行django?在django这样的设置中设置它是一种好方法吗?

os.environ['PYTHONHASHSEED'] = 'random'
杰维尔什

mod_wsgi 4.1.0为此引入了一个选项(http://modwsgi.readthedocs.org/en/latest/release-notes/version-4.1.0.html);您将添加到您的Apache配置中:

WSGIPythonHashSeed random

如果无法运行该版本,则必须在Apache进程的启动环境中设置变量,该环境将特定于操作系统。对于Fedora或RHEL 7,可以创建/etc/systemd/system/httpd.service:

.include /lib/systemd/system/httpd.service
[Service]
Environment=PYTHONHASHSEED=random

然后systemctl daemon-reload; systemctl restart httpd.service对于预先系统化的Red Hat,您可以编辑/ etc / sysconfig / httpd。对于Debian,它是/ etc / apache2 / envvars。

这是一个WSGI文件,用于测试其是否正常工作(基于mod_wsgi文档中的示例):

import sys

def application(environ, start_response):
    status = '200 OK'

    try:
        hr = sys.flags.hash_randomization
        if hr == 0:
            output = 'Hash randomization disabled'
        elif hr == 1:
            output = 'Hash randomization enabled'
        else:
            output = 'Unknown hash randomization: ' + str(hr)
    except AttributeError:
        output = 'Hash randomization not supported'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章