您的位置:首页 > 运维架构 > Nginx

CentOS7下安装Nginx及配置SSL证书

2017-12-21 00:00 507 查看
上一篇讲了:CentOS7下安装MySQL5.7

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

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配置是使用正则表达式匹配配置,所以我们还要安装表达式解析库

# yum install -y pcre pcre-devel

4.3 安装nginx准备环境-zlib

我们总是想让自己的页面被打开快一点,抛开网络质量来说,就是让我们的页面资源被请求时能够尽量小一些,这时候gzip就排上用场了,而nginx的gzip的需要库的支持

# 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,那么您使用默认配置就好

# 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配置简述到这里,如果错误,欢迎指出!谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息