“ssl_preread”在NGINX中不起作用

时间:2018-01-09 15:22:22

标签: nginx webserver

我正在尝试在我的nginx中实现“ssl_preread”。我的nginx用“--with-stream_ssl_preread_module”这个模块编译。

我提到“ssl_preread on;”在nginx.conf的server指令中。但我得到的错误。

nginx:[emerg]在/opt/nginx/conf/nginx.conf:43中不允许使用“ssl_preread”指令

我正在关注以下文档。

http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html

3 个答案:

答案 0 :(得分:2)

  1. 使用两个模块进行编译
  2.   

    - with-stream

         

    - 与-stream_ssl_preread_module

    1. 在http block
    2. 之外创建一个流阻止
      stream {
          upstream app {
              server IP1:Port;
            server IP2:Port;
          }
      
          map $ssl_preread_server_name $upstream {
              default app;
          }
      
          server {
              listen PORT;
      
              ssl_preread on;
              proxy_pass $upstream;
          }
      }
      

      这对我有用。如果这对您有用,请告诉我

答案 1 :(得分:0)

也许你需要将 Nginx 更新到最新版本。 1.10我也遇到这个错误,但是1.18配置没问题。

答案 2 :(得分:0)

也许这是一个迟到的答案。从 CentOS 8.3 存储库安装 nginx 1.14 时遇到以下问题。

The error was: MisconfigurationError('Error while running nginx -c /etc/nginx/nginx.conf -t.\n\nnginx: [emerg] unknown "ssl_preread_server_name" variable\nnginx: configuration file /etc/nginx/nginx.conf test failed\n',)
The nginx plugin is not working; there may be problems with your existing configuration.
The error was: MisconfigurationError('Error while running nginx -c /etc/nginx/nginx.conf -t.\n\nnginx: [emerg] unknown "ssl_preread_server_name" variable\nnginx: configuration file /etc/nginx/
nginx.conf test failed\n',)

我通过升级最新的 nginx-1:1.20.0-1.el8.ngx.x86_64 解决了这个问题

http://nginx.org/en/linux_packages.html#RHEL-CentOS