Linux 系统安装 Nginx、配置支持https、ssl

学习目标

Linux 安装Nginx
Nginx 配置HTTPS服务器

1. 兵马不动,粮草先行

linux 安装nginx需要操作系统先安装好GCC、openssl-devel、pcre-devel和zlib-devel软件库
配置HTTPS服务器需要 ssl_证书、ssl证书密钥

1.1 官网下载 Nginx

官网地址 https://nginx.org/
下载地址 https://nginx.org/en/download.html
进入下载页面,选择需要的版本(Stable version 稳定版本、Mainline version 主线版本、Legacy versions 旧版本)
下载页面

选择自己需要的版本后自行下载,喜欢新的,我选择的 nginx-1.23.2

1.2 检查系统GCC、必要软件库

软件库以及GCC检查总结:个人意见不用检查,直接安装6个依赖软件库以及编译工具GCC ,仅针对安装nginx。
理由参见文章末尾章节。如果非要检查参见末尾章节。

1.3 安装GCC、软件库

1.3.1 安装GCC编译器

    gcc的全称是GNU Compiler Collection,它是由GNU推出的一款功能强大的、性能优越的多平台编译器,是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。gcc支持多种硬件平台。
    安装命令如下:
yum -y install gcc gcc-c++ autoconf automake make

1.3.2 安装pcre、pcre-devel

Pcre全称(Perl Compatible Regular Expressions),中文perl兼容正则表达式。Nginx的Rewrite模块和http核心模块都会使用到PCRE正则表达式语法。pcre-devel 是使用 pcre 开发的一个二次开发库。
安装命令如下:

yum install pcre -y
yum install pcre-devel -y

1.3.3 安装zlib 、zlib -devel

安装命令如下:

yum install zlib -y
yum install zlib-devel -y

1.3.4 安装openssl 、openssl -devel

控件添加的模块 HTTPS协议支持到HTTP服务器。默认情况下不构建此模块。构建和运行此模块需要OpenSSL库。如果不需要支持HTTPS协议不需要安装OpenSSL library。如果使用需要在构建Nginx 时候加上参数 --with-http_ssl_module
安装命令如下:

yum install openssl -y
yum install openssl-devel -y

2. 开干,开始安装Nginx

2.1 上传 Nginx安装包

利用xftp工具 或其他工具上传到系统home 目录(其它目录也可以)。

2.2 解压 Nginx安装包

切换到你上传的目录运行命令:(nginx-1.23.2.tar.gz 文件名替换你下载的文件名)

tar -zxvf nginx-1.23.2.tar.gz

2.3 配置、编译、安装

需要切换到解压后的文件夹执行下面一系列命令。如果报错参见下面常见安装错误章节。

  1. 配置运行下面命令:(默认配置不支持https 、ssl)
    ./configure
  如果需要支持https 、ssl运行下面命令: 
   ./configure --with-http_ssl_module

更多配置说明参见配置说明章节。
3. 编译运行下面命令:

make
  1. 安装运行下面命令:
make install

2.4 启动测试

运行下面命令:(需要切换到默认安装路径下执行./nginx 或者加入环境变量 nginx)

 ./nginx

通过浏览器访问:

3. 开机自动启动Nginx

3.1 创建开机自启脚本(nginx.service)

运行下面命令:

cd /etc/systemd/system
vi nginx.service

3.2 nginx.service文件内容(复制粘贴即可)

不是默认安装路径的自己修改

[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

3.3 设置文件权限

运行命令:

chmod 755 nginx.service

3.4 设置开机自动启动

运行下面命令:

systemctl daemon-reload
systemctl enable nginx

3.5 测试启停

运行下面命令:

systemctl start nginx # nginx启动
systemctl stop nginx # nginx停止

3.6 重启服务器测试

运行下面命令:

reboot

3.7 常用命令

  1. 启动nginx服务 systemctl start nginx.service
  2. 重新启动nginx服务 systemctl restart nginx.service
  3. 查看nginx服务当前状态 systemctl status nginx.service
  4. 停止开机自启动 systemctl disable nginx.service

4. 配置HTTPS服务器

4.1 拷贝证书密钥

上传证书和密钥到配置文件夹(配置文件直接使用不用加路径,懒人用)

4.2 修改配置文件

要配置HTTPS服务器,必须在服务器块的侦听套接字上启用ssl参数,并指定服务器证书和私钥文件的位置。
服务器证书是一个公共实体。它被发送到连接到服务器的每个客户机。私钥是一个安全的实体,应该存储在一个有访问限制的文件中,但是,它必须可以被nginx的主进程读取。
注意替换你的域名和证书以及密钥名称和路径。

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    
}

4.3 重新加载配置

可以使用命令 ./nginx -s reload
也可以通过停止服务与开启服务

5. 检查安装依赖

5.1 检查GCC

检查是否安装执行以下命令:

gcc -v

如果有安装版本以及安装信息,则表明安装完毕,没有则需要安装gcc编译器,会提示“Command not found”。
安装完的执行结果

5.2 检查OpenSSL library

运行下面命令检查是否安装:

rpm -qa openssl

看到openssl的版本,说明已安装,否则未安装。

5.3 检查pcre-devel

查看linux是否安装了pcre环境 pcre 与 pcre-devel 都要检查
方法一:执行以下命令:

yum list installed | grep pcer

若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。
在这里插入图片描述
方法二:执行以下命令:

rpm -qa pcre
rpm -qa pcre-devel

在这里插入图片描述

如果没有安装,在安装 nginx 时候会出现下面提示(翻译):

./configure:error:HTTP重写模块需要PCRE库。

原命令行提示原图:
执行./configure 执行结果返回

5.4 检查zlib library

检查是否安装执行以下命令:

yum list installed | grep zlib

执行结果:(虽然我这里出现这个版本号依然安装检查时提示缺少zlib library ),所以这个检查是否安装还是不推荐。
在这里插入图片描述
如果不安装在安装nginx,在配置nginx会出现下面错误提示。

./configure:error:HTTP gzip模块需要zlib库。

运行./configure 界面截图:
界面截图

6. 不检查依赖理由

6.1 验证浪费时间

linux 软件安装大概有以下几种方式:

rpm包安装方式
yum方式安装
deb包安装方式
tar.gz源代码包安装方式 (本例子ngnix就是这种方式安装)
tar.bz2源代码包安装方式
apt方式安装
bin文件安装
检查是否安装并不一样。
例如:
yum list installed | grep (yum 方式验证是否安装) eg: yum list installed | grep pcre
rpm -qa pcre (rpm 方式验证是否安装) eg: rpm -qa pcre
-v (查看安装信息) eg: gcc -v
我验证的时候就出现误以为安装了,但是结果缺少了 -devel 库。
下图是我验证界面结果,pcre 验证方式不一样结果不一样。

[root@192 nginx-1.23.2]# yum list installed | grep pcre
pcre.x86_64                            8.32-17.el7                     @anaconda
pcre-devel.x86_64                      8.32-17.el7                     @base    
[root@192 nginx-1.23.2]# rpm -qa pcre
pcre-8.32-17.el7.x86_64
[root@192 nginx-1.23.2]# yum list installed | grep zlib
zlib.x86_64                            1.2.7-20.el7_9                  @updates 
zlib-devel.x86_64                      1.2.7-20.el7_9                  @updates 

互联网当然你也可以搜索每一个库的验证方法。

6.2 直接安装没有问题

如果安装过了会提示安装过了**版本,Nothing to do,没有安装则进行安装。系统什么也不做。
下面代码你运行很多次也没事情。因为:Nothing to do。

[root@192 sbin]# yum install pcre -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
Package pcre-8.32-17.el7.x86_64 already installed and latest version
Nothing to do
[root@192 sbin]# yum install pcre-devel -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
Package pcre-devel-8.32-17.el7.x86_64 already installed and latest version
Nothing to do
[root@192 sbin]# yum install zlib -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
Package zlib-1.2.7-20.el7_9.x86_64 already installed and latest version
Nothing to do
[root@192 sbin]# yum install zlib-devel -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
Package zlib-devel-1.2.7-20.el7_9.x86_64 already installed and latest version
Nothing to do
[root@192 sbin]# yum install openssl -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
Package 1:openssl-1.0.2k-25.el7_9.x86_64 already installed and latest version
Nothing to do
[root@192 sbin]# yum install openssl-devel -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.huaweicloud.com
 * updates: mirrors.ustc.edu.cn
Package 1:openssl-devel-1.0.2k-25.el7_9.x86_64 already installed and latest version
Nothing to do
[root@192 sbin]# 

6.3 守门人

安装nginx 时候命令 ./configure 也会检查是否缺少以来的软件库。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一码先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值