Nginx安装http2和ssl模块

Nginx安装http2和ssl模块

Nginx在执行默认安装命令的时候,并不会编译启用ngx_http_v2_module模块。故在修改Nginx配置文件启用http2.0协议的时候会报错。

image-20240109095422991

一.检查Nginx安装了哪些模块

#进入Nginx的安装目录
cd /usr/local/nginx
#执行命令查看安装了哪些模块
./sbin/nginx -V

image-20240109095742352

如图就是没有安装ngx_http_v2_module模块

二.重新编译Nginx

Nginx有两个目录,一个是安装目录,一个是源码目录,安装目录就是执行安装流程后的目录,一般默认位置是/usr/local/nginx

源码目录就是Nginx安装包解压的目录,也就是执行make和make install的文件目录

进入到nginx源码目录重新编译,通过–with-http_v2_module启用ngx_http_v2_module模块,然后make 。

注意这里不要执行make install,如果执行了install会覆盖之前的安装目录

#进入源码目录
cd /home/ngtl/nginx-1.22.0/
#配置编译文件,如果上一步有已经启用的模块则需要包括已启用的模块和ngx_http_v2_module模块
#这里一并安装了其余两个常用的模块,包括ssl和stub_status监视模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module

等待执行完毕

image-20240109102522127

#然后make编译
make

image-20240109102556122

等待编译完成

image-20240109102630836

编译后的新生成的nginx文件在源码目录的objs目录下,如图所示:

image-20240109102723075

三.替换原有的Nginx文件

#备份
cd /usr/local/nginx/sbin
mv nginx nginx.bak
#替换Nginx文件
cp /home/ngtl/nginx-1.22.0/objs/nginx /usr/local/nginx/sbin
ls

image-20240109103132806

然后检查模块是否安装成功

cd /usr/local/nginx/sbin
./nginx -V

image-20240109103504118

至此Nginx新增模块就成功了

### 安装SSL模块 如果Nginx已经安装并且没有包含SSL模块,可以通过以下步骤来添加SSL模块: 1. **切换到源码包目录**: 切换到Nginx源码包所在的目录,例如: ```bash cd /usr/local/nginx-1.16.1 ``` 2. **重新编译并添加SSL模块**: 使用`./configure`命令重新配置Nginx,并添加`--with-http_ssl_module`选项以包含SSL模块。如果Nginx安装路径不是默认路径,还需要指定`--prefix`选项: ```bash ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module ``` 3. **编译并替换Nginx**: 执行编译命令,并替换现有的Nginx可执行文件: ```bash make cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak cp ./objs/nginx /usr/local/nginx/sbin/ ``` 4. **验证安装**: 检查Nginx版本以确认SSL模块是否已成功安装: ```bash /usr/local/nginx/sbin/nginx -v ``` 如果输出中包含`--with-http_ssl_module`,则表示SSL模块已经成功安装。 ### 配置SSL模块Nginx中配置SSL模块以支持HTTPS协议,需要进行以下步骤: 1. **获取SSL证书**: 获取由证书颁发机构提供的SSL证书文件私钥文件。 2. **编辑Nginx配置文件**: 打开Nginx的配置文件`nginx.conf`,并在需要启用SSL的server块中添加SSL相关的配置。例如: ```nginx server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/private.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } } ``` 3. **重启Nginx服务**: 保存配置文件后,重启Nginx服务以应用更改: ```bash /usr/local/nginx/sbin/nginx -s reload ``` ### 验证SSL配置 确保SSL配置正确无误,可以通过浏览器访问HTTPS站点来测试。此外,也可以使用命令行工具如`openssl`来检查SSL连接: ```bash openssl s_client -connect example.com:443 ``` ### 相关问题 1. 如何检查Nginx是否支持SSL模块2. 如何生成自签名的SSL证书用于测试? 3. 如何在Nginx中配置多域名SSL证书? 4. 如何更新NginxSSL证书? 5. 如何解决Nginx SSL证书过期的问题?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值