如果第一次安装nginx没有配置SSL模块而后续添加的话,只能重新编译。但是,假如现有nginx之前如果有一些编译参数,再添加SSL的编译参数的时候也要包含原有参数,否则新编译出来的nginx可能不支持原有的部分功能。这里记录在现有安装的nginx基础上,添加 http_ssl_module
和 http_v2_module
模块,以支持SSL和http2。
1 查看原有nginx编译参数
使用如下命令,查看原有nginx编译参数
# 查看现有版本nginx的编译参数
nginx -V
查看结果如下,现有nginx不包含任何编译参数。
2 重新配置编译参数
进入nginx源码目录,执行configure
重新配置编译参数,http_ssl_module
和 http_v2_module
模块配置编译参数如下,因原有编译参数为空,所以本次只有这两个编译参数。
# 源码包目录下执行
./configure --with-http_ssl_module --with-http_v2_module
3 重新编译
在nginx源码目录下执行 make
重新编译,如下。为防止不可预料的问题,可备份原有版本nginx(默认文件路径为/usr/local/nginx/sbin/nginx
)。编译完成后,覆盖原有的nginx执行文件,命令如下:
注意,一定不要执行
make install
,这样会覆盖安装,如果原有的nginx还有一些的配置文件,就会被覆盖。所以只要将本次编译出来的nginx覆盖原有可执行程序即可
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/
4 验证新的编译参数
覆盖新版的nginx执行文件后,再次查看编译参数,结果如下。
此时,可支持在nginx配置文件中,添加类似如下的ssl及http2相关配置。执行nginx配置文件检查结果如下: