问题
为什么下面的Nginx配置返回nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/sites-enabled/default:1
Nginx配置.
stream {
map $ssl_preread_server_name $upstream {
example.com 1051;
}
upstream 1051 {
server 127.0.0.1:1051;
}
server {
listen 443;
proxy_pass $upstream;
ssl_preread on;
}
}
版本/构建信息..。
操作系统: Debian 10
下面是精简的nginx -V
输出,确认我需要的模块的存在.
nginx version: nginx/1.14.2
TLS SNI support enabled
configure arguments: ... --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module ...
语境
我只有一个静态IP地址。在静态IP地址上,我正在设置一个反向代理Nginx服务器,将流量转发到各种后端服务。其中一些服务是具有独特域名的网站。
+-----+ +----------------------+ +---------+
| WAN | <----> | Nginx Reverse Proxy | <----> | Service |
+-----+ +----------------------+ +---------+
在引导时,服务使用systemd来运行这个端口转发ssh
命令,以连接到反向代理:ssh -N -R 1051:localhost:443 tunnel@example.com
(运行良好)。
我希望证书驻留在服务上,而不是反向代理。据我所知,我需要利用Nginx上的SNI通过基于域名的SSL连接。但我无法让Nginx反向代理通过SSL。
资源
以下是我仔细研究过的一些资源.
发布于 2021-07-12 15:01:54
问题是我试图将stream
块嵌入到http
块中。我在/etc/nginx/nignx.conf
文件中没有正确地解释/etc/nginx/nignx.conf
。
https://stackoverflow.com/questions/68167077
复制相似问题