最近在使用nginx反向代理时遇到了一些问题,在本文记录一下问题及相应的解决方法。

问题1

问题现象

错误日志如下:

1
2
: host not found in upstream "xx.xx.vip"in /etc/nginx/conf.d/default.conf:17
nginx: [emerg] host not found in upstream "xx.xx.vip”in /etc/nginx/conf.d/default. conf:17

从错误日志可以看出这个问题主要是nginx无法解析相应的域名。

解决方法

怎么解决这个问题呢,我们只需添加相应的dns服务器即可 resolver 8.8.8.8;

问题2

问题现象

错误日志如下:

1
2023/07/28 01:35:43 [error] 34#34: *44 SSL_do_handshake() failed (SSL: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error:SSL alert number 80) while SSL handshaking to upstream, client: 172.16.64.75, server: , request: "POST /v1/data/xx/filter HTTP/1.1", upstream: "https://xxxx:443/v1/data/xx/filter", host: "xx.xx.com", referrer: "https://xx.xx.com/user/login"

解决方法

这个问题主要是https相关配置的问题,我们只需添加这几行配置即可:

1
2
3
proxy_ssl_session_reuse off;
proxy_ssl_server_name on;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

proxy_ssl_session_reuse off; 关闭默认尝试重新使用SSL上游的SSL会话 proxy_ssl_server_name on; 反向代理的时候,通过域名而不是ip地址去访问 proxy_ssl_protocols 指定SSL协议

小结

本文讲述了最近在使用nginx进行反向代理时遇到的2个问题及相应的解决方法,后面如果出现相关的问题,也会补充在本文中的。