Mac 安装Nginx with-http_ssl_module
Nginx 配置文件,开启ssl访问时,报出错误信息:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx_proxy.mimvp.com.conf:76
原因分析:
nginx缺少http_ssl_module模块,编译安装的时候带上 --with-http_ssl_module 配置就行了
但是现在的情况是nginx已经安装过了,怎么添加模块,其实也很简单
我的nginx的安装目录是 /usr/local/nginx/ 这个目录,我的源码包在/opt/nginx-1.13.0/目录
安装 openssl
方法1:brew命令安装
brew install openssl
方法2:源码编译安装(推荐)
1. 下载 openssl
Github官网: https://github.com/openssl/openssl
下载zip包: openssl-master.zip
2. 解压
unzip openssl-master.zip
sudo cp openssl-master /opt/openssl-1.1.1-dev
3. 安装
sudo ./config --prefix=/usr/local/openssl
sudo make && sudo make install
或
export KERNEL_BITS=64
sudo ./config darwin64-x86_64-cc --prefix=/usr/local/openssl
sudo make && sudo make install
Nginx开启SSL模块
切换到源码包:
cd /opt/nginx-1.13.0/
查看nginx原有的模块
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.13.0
built by clang 8.1.0 (clang-802.0.42)
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module
在configure arguments:后面显示的原有的configure参数如下:
--prefix=/usr/local/nginx --with-http_stub_status_module
那么我们的新配置信息就应该这样写:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
或
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/openssl
运行上面的命令即可,等配置完
配置完成后,运行命令
sudo make
这里不要进行make install,否则就是覆盖安装
需要先备份原有已安装好的 nginx 命令
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
然后将刚刚编译好的nginx覆盖掉原有的nginx(注意:nginx要是停止状态)
cp ./objs/nginx /usr/local/nginx/sbin/
然后启动nginx,仍可以通过命令查看是否已经加入成功
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.13.0
built by clang 8.1.0 (clang-802.0.42)
built with OpenSSL 1.1.1-dev xx XXX xxxx
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module
Nginx 配置 ssl 步骤
Nginx 配置Http和Https共存
server { listen 80 default backlog=2048; listen 443 ssl; server_name mimvp.com; root /var/www/html; ssl_certificate /usr/local/Tengine/sslcrt/ mimvp.com.crt; ssl_certificate_key /usr/local/Tengine/sslcrt/ mimvp.com.Key; }
把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用
Nginx 配置SSL安全证书重启避免输入密码
可以用私钥来做这件事。生成一个解密的key文件,替代原来key文件。
openssl rsa -
in
server.key -
out
server.key.unsecure
Nginx SSL性能调优
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
参考推荐:
LNMP(linux+nginx+mysql+php)服务器环境配置
CentOS安装Nginx (推荐)
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2017-09-09 00:19:13
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!