CentOS7下安装Nginx及配置SSL证书

上一篇讲了:CentOS7下安装MySQL5.7nginx

服务器要部署项目,天然少不了对静态文件处理十分优秀的代理服务器Nginx。因为只是平常记录,这里就不讲心灵历程了... ...c++

1.下载

# wget http://nginx.org/download/nginx-1.12.2.tar.gz

这里选择的是nginx的1.12.2稳定版,生产原则是越稳定越好,因此就没选择主线版本。正则表达式

2.解压

# tar -zxvf nginx-1.12.2.tar.gz

tar.gz格式与tar格式解压不一样:一个参数是-zxvf,一个是-xvf,因为tar.gz是使用gzip压缩过的,因此参数有个z,这个值得注意。浏览器

3.移动文件夹并更名

# mv nginx-1.12.2 ../nginx1.12

以前移动文件老是用绝对路径,并且移动和重命名分开作,仍是由于对命令不够熟悉,告诫本身多去理解。服务器

4.安装

4.1 安装nginx准备环境-gcc

因为nginx是使用c写的,咱们须要把他编译。若是输入gcc -v能看到版本信息,那能够跳过这步,若是没有,那输入如下命令进行安装:网络

# yum install gcc-c++

4.2 安装nginx准备环境-pcre

nginx配置是使用正则表达式匹配配置,因此咱们还要安装表达式解析库session

# yum install -y pcre pcre-devel

4.3 安装nginx准备环境-zlib

咱们老是想让本身的页面被打开快一点,抛开网络质量来讲,就是让咱们的页面资源被请求时可以尽可能小一些,这时候gzip就排上用场了,而nginx的gzip的须要库的支持ui

# yum install -y zlib zlib-devel

4.4 安装nginx准备环境-openssl(可选)

nginx对ssl加密证书也有比较好的支持加密

# yum install -y openssl openssl-devel

4.5 正式安装

4.5.1 无SSL要求

若是您跳过了步骤4.4,不须要ssl,那么您使用默认配置就好.net

# cd ../nginx1.12

# ./configure

确认配置后,直接构建,而后安装就行了

# make

# make install

假如您安装时无SSL要求,选择的是默认配置,后来忽然想用SSL了,那您配置了nginx的ssl相关参数时,就会遇到错误:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:xxx

这时候就须要修改配置了,

# cd /usr/local/nginx-1.12 // 进入到nginx安装包目录

# ./configure --prefix=/usr/local/nginx --with-http_ssl_module // 加上http的ssl支持模块

修改完成以后,nginx就对https添加了支持了,而后咱们构建。

# make

而后覆盖nginx以前的二进制文件(注意,make就能够了,不须要make install)

# cp objs/nginx   /usr/local/nginx/sbin // 注意您安装nginx的实际目录

此时会询问是否覆盖,输入y赞成,开始覆盖。若是提示文件繁忙,也能够先去到nginx安装目录下sbin目录把nginx先中止,再完成上述覆盖操做。

而后咱们重启nginx,配置好ssl就能够正常使用了。

4.5.2 有SSL要求

# cd ../nginx1.12

# ./configure \ --prefix=/usr/local/nginx --with-http_ssl_module // 加上http的ssl支持模块

而后构建安装,

# make

# make install

5 配置SSL

以花生壳的SSL证书为例,假设DNS解析已经配置好了,下载证书压缩包,解压获得后缀为.crt和.key两个文件。为了不配置路径问题,能够考虑直接移到nginx安装目录下的conf文件夹内,打开nginx.conf进行配置。

server {
        listen       443 ssl;

        server_name  localhost;
	ssl on;
	
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

	ssl_certificate XXX-ca-bundle.crt;    // 证书
	ssl_certificate_key XXX.key;    // 私钥

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
    }

配置完后,使配置生效。

./nginx -s reload

使用浏览器访问:

输入图片说明

nginx配置简述到这里,若是错误,欢迎指出!谢谢

相关文章
相关标签/搜索