nginx配置 auth_request后报302

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx配置 auth_request后报302相关的知识,希望对你有一定的参考价值。

参考技术A nginx来做点播服务器(流媒体服务器),配置了https有一半请求ts和key的访问都报错302和499。
nginx.conf配置参考地址: nginx官网:ngx_http_auth_request_module

nginx官网的配置也是没有 proxy_set_header Host $host ,解决问题思路如果不正确就很难了。

access.log

发现正常请求的 $remote_addr 字段都是 ::1,而302报错请求的 $remote_addr 字段变成了127.0.0.1。
问题终结:两次一样的request,源ip竟然不一致,说明代理的源ip配置不正确
解决方案:配置nginx.conf添加 proxy_set_header Host $host

配置完成后,访问正常,而正常的日志

linux系统-Nginx访问报错

安装nginx 启动后报错

nginx error.log

[error] 5#5: *1 connect() failed (111: Connection refused) while connecting to upstream, client:

解决方案:

我的conf server是这样配置的:

# curl https://ssl-config.mozilla.org/ffdhe2048.txt > /etc/nginx/ssl/dhparam.pem
# ssl_dhparam ssl/dhparam.pem;
location / {
client_max_body_size 20M;
proxy_pass  http://xxx.xxx.xxx.xxx:8091;
proxy_set_header Host       $host;
proxy_set_header X-Real-IP  $remote_addr;
}

注意这里:

location / {
	client_max_body_size 20M;
	# 我的问题就是这里 原来是:proxy_pass  http://localhost:9000;
	# 后来改成:proxy_pass  http://127.0.0.1:9000; 也不行!
	# 改成解决:proxy_pass  http://xxx.xxx.xxx:9000; ok了!(xxx.xxx.xxx是你服务器公网IP 如:139.172.99.21:9000)
	proxy_pass  http://xxx.xxx.xxx.xxx:9000;
	proxy_set_header Host       $host;
    proxy_set_header X-Real-IP  $remote_addr;
    }
    ```

以上是关于nginx配置 auth_request后报302的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak 和 Nginx:auth_request

nginx 配置用户认证

Nginx——nginx修改配置文件重新加载后报错nginx: [error] invalid PID number ““ in “/run/nginx.pid“

Nginx更换SSL证书后报错

Nginx更换SSL证书后报错

Nginx学习笔记