环境说明
- 系统:Linux | CentOS 7.4
- Nginx:版本 1.8.1
- Nginx 通过编译安装到
/usr/local/nginx
下
配置过程(踩坑)
修改nginx.conf
配置
在 Nginx 配置文件 nginx.conf
中追加如下配置,保存:
server {
listen 443;
server_name wechat.zhongcaile.net;
ssl on;
ssl_certificate /root/server/ssl/wechat/XXXXXX.crt;
ssl_certificate_key /root/server/ssl/wechat/XXXXXX.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 / {
proxy_pass http://XXX.XXX.XXX.XXX:80;
proxy_set_header Host $host;
}
}
使用命令/usr/local/nginx/sbin/nginx -s reload
让 Nginx 重新加载配置。
呃 ... ... 问题来了,在重载配置时 Nginx 报出错误:unknown directive "ssl" in XXX
解决问题
经查,是在编译安装 Nginx 时没有加入 SSL 支持参数的原因。
可以使用命令 /usr/local/nginx -V
查看配置参数中是否添加 SSL 支持。
支持的查询结果(注意最后一行)
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
不支持的查询结果
nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
configure arguments: --prefix=/usr/local/nginx
如果是这样,那么就需要重新配置编译 Nginx,步骤如下。
- 在nginx的安装目录执行命令,添加配置;
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
- 在nginx的安装目录执行命令
make
; - 【重中之重】不要执行
make install
命令,否则会意想不到的事情发生。 make
之后,将编译得到的结果nginx
文件cp
到/usr/local/nginx/sbin
目录下(注意备份之前的老版本哟,以备不时之需)- 假如一切正常的话,进行上述步骤之后,再来执行
nginx -s reload
应该就没有问题了。
👆为什么是“假如”?
因为不会那么顺利的,呵呵!
比较不幸的时候,在执行上面步骤时./configure
第一步,就会发生错误,错误信息如下:
SSL modules require the OpenSSL library.
解决问题
这时需要在系统安装 openssl 支持,执行以下命令。
yum -y install openssl openssl-devel
安装完成后,再操作上面的步骤,就OK啦。
注意
由于博客程序问题,文章中“=”等于符号问中文字符,执行命令时请替换后使用。
参考
FEATURED TAGS
html
sqlite
抓取
爬虫
python
宕机
通关
游戏
ruoyi
若依
高项
论文
软考
工具
Tools
Windows
禅道
Nacos
iconfont
icon
transition
大数据
Kafka
Flume
CA
Whistle
抓包
idea
Gateway
梯子
代理
Clash
Halo
lanproxy
测试
Solo
保护费
Retropie
复古派
RaspberryPi
树莓派
KeePass
Password
密码
https
GBK
Sublime Text
CSS
微信商户
渠道
Android
redis
JMeter
CentOS
跨域
服务中心
注册中心
Consul
消息队列
RabbitMQ
SpringCloud
ssh
公钥
Mac
表情
乱码
ssl
sqlserver
jdbc
java8
阿里云
aliyun
tomcat
二维码
公众号
微信
主从
mysql
廖师兄
SpringBoot
微服务
Docker
解密
加密
CryptoJS
js
assembly
maven
blade
宝可梦
漂移
JoyCon
WiiU
npm
vue
node
定时
crontab
Linux
Switch
Nintendo Switch
archive
git
任天堂
3DS
动森
PB汉化组
汉化
动物之森
手柄
八位堂
对比
PS3
NS
nginx
blog
java