我有两个泊坞容器:
-
一个容器运行我的Spring引导应用程序,该应用程序侦听端口8080:此容器将8080端口暴露给其他docker容器 . docker网络中的容器ip为172.17.0.2 .
-
另一个容器运行nginx,它发布端口80 .
我可以在我的nginx容器中使用以下conf成功将我的spring boot应用程序放在nginx后面:
server {
server_name <my-ip>;
listen 80;
location / {
proxy_pass http://172.17.0.2:8080/;
}
}
对我的REST API(http://my-ip/context-url)执行GET请求可以正常工作 .
我现在正在尝试使用https将我的应用程序置于nginx之后 . 我的nginx conf如下:
server {
server_name <my-ip>;
listen 80;
return 301 https://$server_name$request_uri;
}
server {
server_name <my-ip>;
listen 443;
ssl on;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
location / {
proxy_pass http://172.17.0.2:8080/;
}
}
但是我现在无法通过http或https访问我的应用程序 . http重定向到https,结果为ERR_CONNECTION_REFUSED
1 回答
问题是我在运行nginx容器时没有发布443端口,只有端口80.nginx配置是正确的 .