与我关于如何使用 nginx 设置反向代理的问题相关,我现在在设置一个还需要 SSL 连接的代理时遇到了困难。
我有 docker 容器,它为我的主机系统提供映射的 SSL 端口 4430。网络服务器正在使用自签名证书。
在我的/etc/hosts
文件中,我定义了:
127.0.0.1 app.local
我的 nginx 服务器配置如下所示:
server {
listen 80;
server_name app.local;
location / {
return https://$host$request_uri;
}
}
server {
listen 443;
server_name app.local;
location / {
proxy_pass https://127.0.0.1:4430;
}
}
当我使用它访问我的网络应用程序时,https://127.0.0.1::4430
它工作正常。我第一次收到关于证书的警告,然后我必须允许。
然而,当通过http://app.local
或连接到它时https://app.local
,我的浏览器显示:
SSL connection error
ERR_SSL_PROTOCOL_ERROR
我也期待证书警告出现,然后我可以允许。
将 SSL 与 nginx 一起使用时如何使反向代理正常工作?
在 nginx 上终止 SSL:
a)服务器部分需要指定端口和'ssl'
b)服务器块然后还指定证书和 ssl 参数
我想你已经很接近了(我自己是 Nginx 的新手),但是你的第二个服务器块需要更多……我的服务器上有一个:
请注意以下事项:
ipv6、charset 和 client max 正文是我在服务器上的行,但对于您在这里所做的事情并不需要。您可以将它们命名为任何名称并将它们放置在任何地方,因此如果您将文件存储在其他地方,请不要担心确切的文件名或位置。这就是我喜欢的方式,我的
ls -l
输出是: