当前位置:   article > 正文

Linux 系统安装 Nginx、配置支持https、ssl_linux安装nginx以及配置ssl

linux安装nginx以及配置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支持多种硬件平台。
    安装命令如下:
  • 1
  • 2
yum -y install gcc gcc-c++ autoconf automake make
  • 1

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
  • 2

1.3.3 安装zlib 、zlib -devel

安装命令如下:

yum install zlib -y
yum install zlib-devel -y
  • 1
  • 2

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
  • 1
  • 2

2. 开干,开始安装Nginx

2.1 上传 Nginx安装包

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

2.2 解压 Nginx安装包

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

tar -zxvf nginx-1.23.2.tar.gz
  • 1

2.3 配置、编译、安装

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

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

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

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

2.4 启动测试

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

 ./nginx
  • 1

通过浏览器访问:

3. 开机自动启动Nginx

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

运行下面命令:

cd /etc/systemd/system
vi nginx.service
  • 1
  • 2

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3.3 设置文件权限

运行命令:

chmod 755 nginx.service
  • 1

3.4 设置开机自动启动

运行下面命令:

systemctl daemon-reload
systemctl enable nginx
  • 1
  • 2

3.5 测试启停

运行下面命令:

systemctl start nginx # nginx启动
systemctl stop nginx # nginx停止
  • 1
  • 2

3.6 重启服务器测试

运行下面命令:

reboot
  • 1

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;
    
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4.3 重新加载配置

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

5. 检查安装依赖

5.1 检查GCC

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

gcc -v
  • 1

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

5.2 检查OpenSSL library

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

rpm -qa openssl
  • 1

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

5.3 检查pcre-devel

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

yum list installed | grep pcer
  • 1

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

rpm -qa pcre
rpm -qa pcre-devel
  • 1
  • 2

在这里插入图片描述

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

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

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

5.4 检查zlib library

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

yum list installed | grep zlib
  • 1

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

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

运行./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 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

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]# 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

6.3 守门人

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/640004
推荐阅读
相关标签
  

闽ICP备14008679号