Ubuntu 14.04下为现有Nginx添加http_ssl_module的方法咨询
如何为已安装的Nginx添加http_ssl_module模块
我来帮你搞定这个问题~你遇到的报错主要有两个原因:一是命令里多打了一个横杠(应该是--with-http_ssl_module而非--with--http_ssl_module),二是你需要在对应版本的Nginx源码目录下执行configure命令,不能随便在某个目录里运行。下面是详细的操作步骤:
步骤1:下载与已安装版本一致的Nginx源码
你的Nginx版本是1.9.9,必须下载相同版本的源码包,否则编译出来的二进制文件可能和现有环境不兼容:
# 下载源码包 wget http://nginx.org/download/nginx-1.9.9.tar.gz # 解压 tar -zxvf nginx-1.9.9.tar.gz # 进入源码目录 cd nginx-1.9.9
步骤2:安装编译依赖(如果未安装)
添加http_ssl_module需要OpenSSL相关库,Ubuntu系统可以先安装:
apt-get update && apt-get install libssl-dev -y
步骤3:复制原有配置参数并添加SSL模块
你之前通过nginx -V获取的所有configure参数都要保留,再加上--with-http_ssl_module(这一步非常重要,否则新编译的Nginx会丢失之前的所有模块)。执行以下命令:
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-file-aio --with-ipv6 --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --with-http_ssl_module
如果configure执行成功,会显示相关配置信息;如果失败,根据提示安装缺失的依赖即可。
步骤4:编译Nginx(不要执行install)
只需要编译生成新的二进制文件,不要执行make install,避免覆盖现有配置:
make
步骤5:替换原有Nginx二进制文件
先停止Nginx服务,然后备份原有文件,再替换为新编译的版本:
# 停止Nginx service nginx stop # 备份原有二进制文件 cp /usr/sbin/nginx /usr/sbin/nginx.bak # 替换为新编译的文件 cp objs/nginx /usr/sbin/nginx
步骤6:验证模块是否添加成功
启动Nginx并检查模块:
# 启动Nginx service nginx start # 查看配置参数,确认包含--with-http_ssl_module nginx -V
如果输出的configure arguments里有--with-http_ssl_module,就说明添加成功了!
注意事项
- 必须使用完全相同版本的Nginx源码,否则可能出现版本不兼容问题。
- 替换二进制文件前一定要备份,万一出错可以用备份文件恢复。
- 如果编译过程中遇到依赖缺失,根据提示安装对应的开发包即可。
内容的提问来源于stack exchange,提问作者L. Z.
相关产品推荐
相关产品推荐

