Nginx配置Https缺少SSL模块(已解决)

1、Linux下Nginx配置https

nginx下载和安装此处就忽略,可自行百度

1.1、配置https

打开nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

相关https配置

server {
    listen 9128 ssl; #开放端口
    server_name one.poryoung.cn;#域名
    #redirect to https
    #ssl on; #旧版

    #ssl证书地址
    ssl_certificate     /usr/local/cert/*****.pem; #pem
    ssl_certificate_key /usr/local/cert/****.key; #key


     location / {
     	# 代理请求的地址和开放端口
        proxy_pass  http://192.168.0.43:9129;
        #proxy_set_header X-Forwarded-Proto  $scheme;
        #add_header Content-Security-Policy upgrade-insecure-requests;
     }
}

键盘按下ESC键,输入:wq  表示保存退出

其他部分解释:!强制退出、q 退出

测试配置文件是否正确

# 在nginx目录下输入一下命令
./sbin/nginx -tc conf/nginx/conf

出现以下示例表示配置成功

如果出现以下示例字样表示缺少ngx_http_ssl_module模块

the "ssl" parameter requires ngx_http_ssl_module

证明此时Nginx缺少该模块

此时要将刚才的关于https的配置用#先全部注释掉,否则后期停服会报配置文件错误

1.2、下载并配置https

1、找到Nginx安装目录

# 比如我的在/usr/local/src/nginx-1.15.1
cd /usr/local/src/nginx-1.15.1

如果实在找不到,那就查看Nginx版本号重新下载一个

# 查看Nginx版本号 (/usr/local/nginx/是你Nginx服务器的实际位置)
/usr/local/nginx/sbin/nginx -V

 查看configure arguments:后边有没有值,如果有,就复制下来。

2、从新配置SSL模块

进入nginx源码包目录,运行:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --原来有的模块(如果有的话)

如果运行之后,最终报错如下:

2.1、下载OpenSSL库(没报错可忽略该步骤

yum -y install openssl openssl-devel

配置完成后,运行命令make命令

make
# 注意,此处不能mark install 否则就是覆盖安装

3、 替换已安装好的Nginx包

替换之前先备份:

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

先停止Nginx服务

# 停止服务
./usr/local/nginx/sbin/nginx -s stop

将刚刚编译好的nginx覆盖掉原有的nginx

# 在Nginx解压目录下使用以下命令
cp ./objs/nginx /usr/local/nginx/sbin/

# 通过查看版本命令收看是否下载SSL模块成功
/usr/local/nginx/sbin/nginx -V

此时应该显示为即配置成功:

configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

 启动服务即可,命令如下

./usr/local/nginx/sbin/nginx

 

posted @ 2022-01-07 09:03  阿尔法哲  阅读(9074)  评论(0编辑  收藏  举报