一、下载Nginx
Nginx下载地址
Nginx是C语言开发的,建议在Linux上运行。由于Nginx的一些模块依赖一些lib,所以在安装nginx之前需要安装如下依赖库
yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl--devel
二、将下载好的Nginx通过ftp上传到Linux里面并解压
tar -zxvf nginx-1.15.10.tar.gz
三、编译Nginx
cd nginx //进入Nginx目录
接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装
./configure //$默认安装在/usr/local/nginx
make
make install
四、安装成功,一些Nginx命令
whereis nginx //查看NGINX目录
./nginx 启动Nginx
./nginx -s reload //重启Nginx并刷新配置
ps -ef|grep nginx //查看Nginx进程号
kill -QUIT 2072 //杀死Nginx进程
五、安装SSL证书
五、安装SSL证书
回到Nginx源码所在的位置,下载ssl模块
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
从新编译
//我之前默认安装的所以位置在/usr/local/nginx
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
make
下面千万不要make install 会覆盖之前的Nginx的目录
备份nginx启动程序并且复制新生成obj目录的nginx启动文件
首先备份以前的启动程序
cp /usr/local/nginx/sbin/nginx nginx.bak
复制obj新生成的启动程序,覆盖到以前的nginx
cp /yangk/nginx-1.17.0/objs/nginx /usr/local/nginx/sbin/nginx
SSL配置
在conf下面创建ssl文件夹将下载的SSL里面的.pem和.key复制进去,然后配置就OK了
server {
listen 80;
server_name yangkui.top;
listen 443 ssl;
ssl_certificate ssl/a.pem;
ssl_certificate_key ssl/b.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
六、使用HTTPS访问的时候遇到的错误
在页面的head中加入 ,意思是自动将http的不安全请求升级为https
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
七、强制http访问重定向为HTTPS
基于上面的配置,如果直接访问https://www.a.com的时候,是没问题的,但是访问www.a.com的时候默认还是http访问。需要强制将http转换成https访问才行
if ($scheme = http ) {
return 301 https://$server_name$request_uri;
}