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

文章目录

  • 学习目标
  • 1. 兵马不动,粮草先行
    • 1.1 官网下载 Nginx
    • 1.2 检查系统GCC、必要软件库
    • 1.3 安装GCC、软件库
      • 1.3.1 安装GCC编译器
      • 1.3.2 安装pcre、pcre-devel
      • 1.3.3 安装zlib 、zlib -devel
      • 1.3.4 安装openssl 、openssl -devel
  • 2. 开干,开始安装Nginx
    • 2.1 上传 Nginx安装包
    • 2.2 解压 Nginx安装包
    • 2.3 配置、编译、安装
    • 2.4 启动测试
  • 3. 开机自动启动Nginx
    • 3.1 创建开机自启脚本(nginx.service)
    • 3.2 nginx.service文件内容(复制粘贴即可)
    • 3.3 设置文件权限
    • 3.4 设置开机自动启动
    • 3.5 测试启停
    • 3.6 重启服务器测试
    • 3.7 常用命令
  • 4. 配置HTTPS服务器
    • 4.1 拷贝证书密钥
    • 4.2 修改配置文件
    • 4.3 重新加载配置
  • 5. 检查安装依赖
    • 5.1 检查GCC
    • 5.2 检查OpenSSL library
    • 5.3 检查pcre-devel
    • 5.4 检查zlib library
  • 6. 不检查依赖理由
    • 6.1 验证浪费时间
    • 6.2 直接安装没有问题
    • 6.3 守门人

学习目标

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 旧版本)
Linux 系统安装 Nginx、配置支持https、ssl_第1张图片

选择自己需要的版本后自行下载,喜欢新的,我选择的 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”。
Linux 系统安装 Nginx、配置支持https、ssl_第2张图片

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库。

原命令行提示原图:
Linux 系统安装 Nginx、配置支持https、ssl_第3张图片

5.4 检查zlib library

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

yum list installed | grep zlib

执行结果:(虽然我这里出现这个版本号依然安装检查时提示缺少zlib library ),所以这个检查是否安装还是不推荐。
Linux 系统安装 Nginx、配置支持https、ssl_第4张图片
如果不安装在安装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 也会检查是否缺少以来的软件库。

你可能感兴趣的:(开发环境搭建,nginx,linux,https,ssl,运维)