gpt4 book ai didi

basic-authentication - 预渲染 basicAuth 配置

转载 作者:行者123 更新时间:2023-12-01 06:26:42 26 4
gpt4 key购买 nike

我正在运行 prerender server一切正常,但现在我想使用 basicAuth 设置一些安全性.

在我的控制台中,我导出了用户名和密码

export BASIC_AUTH_USERNAME=hugo
export BASIC_AUTH_PASSWORD=boss

在我的 server.js 中,我添加了这一行:
server.use(prerender.basicAuth());

但现在的问题是,如何配置我的 express 服务器以使用正确的用户/密码调用 prerender。我有这个 :
var prerender = require('prerender-node').set('prerenderServiceUrl', 'http://123.123.123.123:3000/');
prerender.set('protocol', 'https');

我没有找到任何文档,我期待类似:
prerender.set('user', 'hugo');
prerender.set('pass', 'boss');

我会很感激你的帮助。谢谢,圣诞快乐:)
app.use(prerender);

解决方案

像往常一样,当您清楚地了解问题时,解决方案很简单......

代替 :
var prerender = require('prerender-node').set('prerenderServiceUrl', 'http://123.123.123.123:3000/');

简单地 :
var prerender = require('prerender-node').set('prerenderServiceUrl', 'http://hugo:boss@123.123.123.123:3000/');

但新问题

像这样启动我的脚本时可以访问导出的环境变量(BASIC_AUTH_USERNAME 和 BASIC_AUTH_PASSWORD):
node server.js

但是因为我希望它们一直运行,所以我做了一个:
forever start server.js

在这种情况下,环境变量不再可访问......我将打开一个新问题,因为它是相关的,但与第一个问题无关!

但希望是全新的解决方案

即使我不喜欢它,因为我更喜欢只设置我的 env 变量一次,像这样使用永远的技巧:
BASIC_AUTH_USERNAME=hugo BASIC_AUTH_PASSWORD=boss forever start server.js

2016/05/05 更新

我现在继续前进 supervisor为了运行我的 nodejs 后台服务器,这是我的 prerender 部分(注意环境变量是如何传递的)
[program:prerender]
environment =
BASIC_AUTH_USERNAME=hugo,
BASIC_AUTH_PASSWORD=boss
command=bash -c "ulimit -n 10000;exec nodejs /home/hugo/prerender/server.js"
process_name=prerender
numprocs=1
autostart=true
autorestart=true
user=hugo
stdout_logfile=/home/hugo/supervisor-prerender-info.log
stdout_logfile_maxbytes=1MB
stderr_logfile=/home/hugo/supervisor-prerender-error.log
stderr_logfile_maxbytes=1MB

我在 .htaccess 重定向中遇到了奇怪的问题,因为
RewriteRule ^(?!.*?(\.js|...|\.woff))(.*) http://hugo:boss@123.123.123.123:3000/https://my-website.com/$2 [P,L]

没有添加正确的基本身份验证请求 header ,因此 prerender 拒绝快照(401),我必须激活 Apache header 模块(sudo a2enmod header )
并将这一行添加到上一行之上:
RequestHeader set Authorization "Basic aHVnbzpib3Nz"

代码 aHVnbzpib3Nz 由命令行生成:
echo -n 'hugo:boss' | base64

最佳答案

您可以创建一个名为 init.sh 的 bash 脚本:

export BASIC_AUTH_USERNAME=hugo 
export BASIC_AUTH_PASSWORD=boss
echo "Running prerender"
forever start server.js

然后赋予执行权限:
chmod +x ./init.sh

之后,您可以使用 ./init.sh 运行脚本或将其放入启动脚本(systemd,sysv)中,以便在计算机启动时执行。

关于basic-authentication - 预渲染 basicAuth 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27640331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com