openresty / nginx遇到了 SSL 工作方面的麻烦

我对 Nginx 是全新的,决定使用开放版本,因为工作需要。

我已经可以使用以下配置设置 http 工作:

server {
   listen 80;
   server_name myNetwork.io *.myNetwork.io;

   access_log  /var/log/nginx/host.access.log  main;

   location / {
       root   /usr/local/openresty/nginx/html;
       index  index.html index.htm;
   }

   location /test/ {
       proxy_set_header Host $host;
       proxy_pass http://simple-node-api.default.svc.cluster.local:3000/;
   }

   error_page  404              /404.html;

   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /usr/local/openresty/nginx/html;
   }
}

我的问题是当我尝试将其升级到 https 时,我遇到了不同的意外问题。以下是我的配置:

server {
   listen 443 ssl;
   server_name myNetwork.io *.myNetwork.io;

   ssl_certificate           /etc/nginx/cert.crt;
   ssl_certificate_key       /etc/nginx/cert.key;

   ssl_session_cache  builtin:1000  shared:SSL:10m;
   ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
   ssl_prefer_server_ciphers on;

   access_log  /var/log/nginx/host.access.log  main;

   location / {
       root   /usr/local/openresty/nginx/html;
       index  index.html index.htm;
   }

   location /test/ {
       proxy_set_header Host $host;
       proxy_pass http://simple-node-api.default.svc.cluster.local:3000/;
   }

   error_page  404              /404.html;

   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /usr/local/openresty/nginx/html;
   }
}

我遇到的确切问题是当我访问 https://myNetwork.io/ 时,它能够正确返回 https 连接,但当我访问 https://myNetwork.io/test/ 时,它返回 404,因为它回到服务器上查找 /usr/local/openresty/nginx/html/test/index.html 而不是创建一个反向代理。以下是日志:

2021/09/01 12:23:37 [error] 6#6: *1 "/usr/local/openresty/nginx/html/test/index.html" 未找到(2:没有这样的文件或目录),客户端:10.1.50.183,服务器:localhost,请求:“GET /test/ HTTP/1.1”,主机:“myNetwork.io10.1.50.183 - - [01/Sep/2021:12:23:37 +0000] "GET /test/ HTTP/1.1" 404 561 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/92.0.4515.159 Safari/537.36"

我不明白为什么当我打开 tls 的时候,proxy_pass 会有不同的功能,也不知道如何解决这个问题。我正在使用来自 dockerHub 的 openresty/openresty:1.19.9.1-0-focal 作为我的基础,并从 https://github.com/openresty/docker-openresty/tree/1.19.9.1-0 获取源。

原文链接 https://stackoverflow.com/questions/69013847

点赞