上一篇讲了: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配置简述到这里,如果错误,欢迎指出!谢谢