CentOS7编译安装Nginx

Nginx在CentOS上安装可以使用yum或源码安装,推荐使用源码安装的方式,因为yum的版本比较旧,而且使用源码可以自定义功能,方便业务的上的使用,源码安装需要提前准备标准的编译器和依赖即可。下面记录一下如何编译安装Nginx,避免在安装时各种缺少依赖库的情况!

安装Nginx

1、安装gcc编译器

1yum -y install gcc

2、nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库

1yum install -y pcre pcre-devel

3、 nginx使用zlib对http包的内容进行gzip,所以需要安装zlib

1yum install -y zlib zlib-devel

4、openssl是nginx的https模块需要的,所以需要安装openssl

1yum install -y openssl openssl-devel

5、下载Nginx源码包

1wget http://nginx.org/download/nginx-1.9.9.tar.gz

6、把压缩包解压缩到 /usr/local下

1tar -zxvf  nginx-1.9.9.tar.gz
2mv nginx-1.9.9 /usr/local/

7、进入/usr/local/nginx-1.9.9

1cd /usr/local/nginx-1.9.9

8、编译安装

1./configure
2
3make
4
5make install

9、安装完成不想配置环境变量的话可以建立软链接

1ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx

10、配置文件的修改

1cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.back
2vim /usr/local/nginx/conf/nginx.conf

启动/停止

1、启动

1nginx

2、 快速停止

1nginx -s stop

3、正常停止

1nginx -s quit

4、重新加载配置文件

1nginx -s reload

配置HTTPS

上面讲述了如何编译安装Nginx,要想用HTTPS, 我们只需要在原有的基础上添加ssl模块就行了

来到解压目录

1cd /usr/local/nginx-1.9.9
1./configure --with-http_ssl_module
2
3make

停止Nginx

1nginx -s stop

把之前的nginx先备份一下,然后把新的程序复制过去覆盖之前的即可

1cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
2
3cp objs/nginx /usr/local/nginx/sbin/nginx

接下来配置证书

mark

解压后得到两个文件,放在服务器的任意目录

mark

接下来就是修改Nginx的配置文件

 1#user  nobody;
 2user root;
 3worker_processes  2;
 4
 5http {
 6    include       mime.types;
 7    default_type  application/octet-stream;
 8
 9    sendfile        on;
10    keepalive_timeout  65;
11
12    server {
13        listen       80;
14        server_name  zouchanglin.cn;
15		return 301 https://zouchanglin.cn;
16        
17    }
18	# HTTPS server
19    server {
20        listen       443;
21        server_name  zouchanglin.cn;
22		
23		ssl on;
24        ssl_certificate      /root/nginx.crt;
25        ssl_certificate_key  /root/nginx.key;
26
27        ssl_session_cache    shared:SSL:1m;
28        ssl_session_timeout  5m;
29
30        ssl_ciphers  HIGH:!aNULL:!MD5;
31        ssl_prefer_server_ciphers  on;
32
33        location / {
34            root   /root/hexo/public;
35            index  index.html index.htm;
36        }
37    }
38}

注意 ssl on; 这个配置一定要加上!