1、Nginx组件安装
(1)安装pcre依赖
终端切换到`/usr/src`目录下:
[root@localhost ~]# cd /usr/src
联网下载pcre压缩文件依赖
[root@localhost src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
解压压缩文件
[root@localhost src]# tar -xvf pcre-8.37.tar.gz
进入解压之后的文件,执行./configure
[root@localhost src]# cd pcre-8.37
[root@localhost pcre-8.37]# ./configure
注意:在执行./configure时需要系统安装gcc,否则会出错,此时需要安装gcc,如下:
[root@localhost pcre-8.37]# yum install gcc gcc-c++
再次执行./configure命令,如下:
[root@localhost pcre-8.37]# ./configure
编译并安装pcre
执行make && make install
[root@localhost pcre-8.37]# make && make install
查看pcre版本:
[root@localhost pcre-8.37]# pcre-config --version
至此,nginx的第一个依赖pcre就安装完成了。
(2)安装zlib及openssl依赖
通过yum方式安装,不再使用下载压缩包,编译安装的方式,且自动下载依赖。执行下面一条命令即可。
[root@localhost pcre-8.37]# yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2、安装Nginx
通过wget方式下载nginx压缩文件包,如下:
[root@localhost src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
解压下载的nginx压缩包,如下:
[root@localhost src]# tar -xvf nginx-1.12.2.tar.gz
进入到解压后的nginx目录中,执行./configure命令。
[root@localhost src]# cd nginx-1.12.2
[root@localhost nginx-1.12.2]# ./configure
如上检查完成之后执行编译,安装命令即可,如下:
[root@localhost nginx-1.12.2]# make && make install
至此,Nginx就安装完成了。安装成功之后,在 usr 目录中 多出来一个目录 local/nginx,在 nginx 目录下 有 sbin 目录,有启动脚本。如下:
[root@localhost nginx-1.12.2]# cd /usr/local/nginx
(3)测试Nginx
进入到 usr/local/nginx/sbin
目录下,启动nginx,如下:
[root@localhost /]# cd /usr/local/nginx/sbin
启动nginx
root@localhost sbin]# ./nginx
(4)查看Nginx进程
启动nginx之后,查看nginx进程,如下:
查看nginx进程
[root@localhost sbin]# ps -ef | grep nginx
(5)访问Nginx
由于nginx中默认的端口是80端口,但是出于linux系统安全方面考虑,并未开放80端口,如果是云服务器,则需在安全组中放开80端口。
(6)配置文件设置
[root@localhost /]# cd /usr/local/nginx/conf
查看nginx中文本信息
[root@localhost conf]# cat nginx.conf
具体如何配置则根据需求来配置。
启动nginx的命令为 /usr/local/nginx/sbin/nginx
停止nginx的命令为 /usr/local/nginx/sbin/nginx -s stop
重启nginx的命令为 /usr/local/nginx/sbin/nginx -s reload
3、为Halo配置Https
配置站点使用 https,并且将 http至 https。
1、nginx的ssl模块安装
查看nginx是否安装http_ssl_module模块
$ /usr/local/nginx/sbin/nginx -V
如果出现
configure arguments: --with-http_ssl_module
, 则已安装(下面的步骤可以跳过,进入nginx.conf
配置)。
下载nginx安装包
# 下载安装包到 src 目录 $ cd /usr/local/src $ wget http://nginx.org/download/nginx-1.14.1.tar.gz # 解压安装包 $ tar -zxvf nginx-1.14.1.tar.gz # 配置ssl模块 $ cd nginx-1.14.1 $ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
使用
make
命令编译(使用make install
会重新安装nginx),此时当前目录会出现objs
文件夹。
用新的 nginx 文件覆盖当前的 nginx 文件。
$ cp ./objs/nginx /usr/local/nginx/sbin/
再次查看安装的模块(
configure arguments: --with-http_ssl_module
说明ssl模块已安装)。
$ /usr/local/nginx/sbin/nginx -V
2、ssl证书部署
下载申请好的 ssl 证书文件压缩包到本地并解压(需要用 pem 与 key 文件,文件名可以更改)。如何申请ssl证书有很多案例,这里不再介绍。
在 nginx 目录新建 cert 文件夹用于存放证书文件。
将这两个文件上传至服务器的 cert 目录里。
nginx.conf 配置
实现将http重定向到https。
http节点下的第一个server配置如下:
server {
listen 80;
listen [::]:80;
# server_name 域名改成自己的
server_name www.cherishspring.cn cherishspring.cn;
client_max_body_size 1024m;
# 301重定向至 https
return 301 https://$server_name$request_uri;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
https server 配置如下:
server {
# ssl使用443端口,服务器端安全组也需要放开
listen 443 ssl;
# server_name 你的域名
server_name www.cherishspring.cn cherishspring.cn;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# 需要将test.com.pem替换成已上传的证书文件的名称。
ssl_certificate /usr/local/nginx/cert/www.cherishspring.cn.pem;
# 需要将test.com.key替换已上传的证书密钥文件的名称
ssl_certificate_key /usr/local/nginx/cert/www.cherishspring.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
重启nginx
如果nginx已经在运行,需要关闭。
# 查看端口使用
$ netstat -lntp
# 结束 80 端口进程
$ kill PID号
# 重启Nginx
$ /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
无提示信息即为配置成功。
示例:如本站