我收到以下错误 - 我正在使用 docker 桌面在本地机器上执行此操作 - 仅供参考
web-1 | 2024/10/08 01:08:24 [emerg] 12#12:bind() 至 10.101.121.15:443 失败 (99:无法分配请求的地址) web-1 | nginx:[emerg] bind() 至 10.111.121.13:443 失败 (99:无法分配请求的地址)
http {
upstream backend {
server cluster_1.ingress.com:443;
server cluster_2.ingress.com:443; max_fails=2 fail_timeout=1s;
}
server {
listen cluster_1.ingress.com:443;
location / {
resolver dns-default.openshift-dns;
proxy_pass https://backend;
proxy_pass_request_headers on;
proxy_ssl_server_name on;
proxy_ssl_name cluster_1.ingress.com;
proxy_set_header Host cluster_1.ingress.com;
}
}
server {
listen cluster_2.ingress.com;
location / {
resolver dns-default.openshift-dns;
proxy_pass "https://cluster_2.ingress.com";
proxy_pass_request_headers on;
proxy_ssl_server_name on;
proxy_ssl_name cluster_2.ingress.com;
proxy_set_header Host cluster_2.ingress.com;
}
}
server {
listen 8080 default_server;
listen [::]:8080 default_server;
root /usr/share/nginx/html;
server_name _;
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Headers Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS,PUT,DELETE,PATCH;
location / {
resolver dns-default.openshift-dns;
proxy_pass $backend;
}
}
}
从上文可以看出,该问题是由于 Nginx 尝试绑定到端口 443 上的特定 IP 地址而引起的。当您尝试绑定的 IP 地址在本地计算机上不可用时,通常会发生此错误。
您可以按照以下几个步骤来排除故障并解决此问题:
检查 IP 地址:确保本地计算机上正确配置了 IP 地址 10.101.121.15 和 10.111.121.13。您可以使用 ifconfig 或 ip addr 命令列出所有可用的 IP 地址。
修改 Nginx 配置:如果这些 IP 地址不可用,您可能需要更新 Nginx 配置文件以使用可用的 IP 地址或 0.0.0.0 来绑定到所有可用接口。配置文件通常位于
/etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default.server { listen 443 ssl; server_name your_domain.com; ... }
检查冲突:确保没有其他服务在指定的 IP 地址上使用端口 443。您可以通过运行 sudo lsof -i :443 或 netstat -tuln | grep :443 来检查。
重启 Docker 和 Nginx:有时,只需重启 Docker 和 Nginx 即可解决绑定问题。您可以使用以下命令重启 Docker Desktop,然后重启 Nginx:
sudo systemctl 重启 nginx