创建密码
# 创建一个test用户,终端输入密码,然后保存到pwd文件中
htpasswd -c pwd test
# 可以cat pwd 看看密码
test:$apr1$XV.xFTZA$Gvuw/g8TAYYS6Nm5c7w5Q1
# 可以向这个文件继续添加用户test2,密码sss
htpasswd -b pwd test2 sss
nginx.conf
将上面生成的文件 pwd 放到 /etc/nginx/pwd目录下,并在 nginx.conf 指定位置.
server {
listen 80 default_server;
server_name _;
location / {
auth_basic "you need login";
auth_basic_user_file /etc/nginx/pwd;
proxy_pass http://xxxx:222;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
# Remove the Connection header if the client sends it,
# it could be "close" to close a keepalive connection
proxy_set_header Connection "";
}
}
注意
proxy_http_version 1.1
、proxy_set_header Connection ""
配置对于SSE这种需要保持长连接的接口很重要,一定要添加不然无数据返回.proxy_http_version
指定版本,proxy_set_header
设置Connection
为空.
curl测试
# 第一种方式, -u 指定用户名密码
curl -u "test2:sss" http://172.16.20.91:38750/sse/test
# 第二种,将用户名密码base64加密后添加到header
echo -n "test2:sss" | base64
curl -H "Authorization:Basic base64加密后的字符串" http://127.0.0.1:38750/test