Linux 安装Nginx
Nginx 配置HTTPS服务器
linux 安装nginx需要操作系统先安装好GCC、openssl-devel、pcre-devel和zlib-devel软件库
配置HTTPS服务器需要 ssl_证书、ssl证书密钥
官网地址 https://nginx.org/
下载地址 https://nginx.org/en/download.html
进入下载页面,选择需要的版本(Stable version 稳定版本、Mainline version 主线版本、Legacy versions 旧版本)
选择自己需要的版本后自行下载,喜欢新的,我选择的 nginx-1.23.2 。
软件库以及GCC检查总结:个人意见不用检查,直接安装6个依赖软件库以及编译工具GCC ,仅针对安装nginx。
理由参见文章末尾章节。如果非要检查参见末尾章节。
gcc的全称是GNU Compiler Collection,它是由GNU推出的一款功能强大的、性能优越的多平台编译器,是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。gcc支持多种硬件平台。
安装命令如下:
yum -y install gcc gcc-c++ autoconf automake make
Pcre全称(Perl Compatible Regular Expressions),中文perl兼容正则表达式。Nginx的Rewrite模块和http核心模块都会使用到PCRE正则表达式语法。pcre-devel 是使用 pcre 开发的一个二次开发库。
安装命令如下:
yum install pcre -y
yum install pcre-devel -y
安装命令如下:
yum install zlib -y
yum install zlib-devel -y
控件添加的模块 HTTPS协议支持到HTTP服务器。默认情况下不构建此模块。构建和运行此模块需要OpenSSL库。如果不需要支持HTTPS协议不需要安装OpenSSL library。如果使用需要在构建Nginx 时候加上参数 --with-http_ssl_module
安装命令如下:
yum install openssl -y
yum install openssl-devel -y
利用xftp工具 或其他工具上传到系统home 目录(其它目录也可以)。
切换到你上传的目录运行命令:(nginx-1.23.2.tar.gz 文件名替换你下载的文件名)
tar -zxvf nginx-1.23.2.tar.gz
需要切换到解压后的文件夹执行下面一系列命令。如果报错参见下面常见安装错误章节。
./configure
如果需要支持https 、ssl运行下面命令:
./configure --with-http_ssl_module
更多配置说明参见配置说明章节。
3. 编译运行下面命令:
make
make install
运行下面命令:(需要切换到默认安装路径下执行./nginx 或者加入环境变量 nginx)
./nginx
通过浏览器访问:
运行下面命令:
cd /etc/systemd/system
vi 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
运行命令:
chmod 755 nginx.service
运行下面命令:
systemctl daemon-reload
systemctl enable nginx
运行下面命令:
systemctl start nginx # nginx启动
systemctl stop nginx # nginx停止
运行下面命令:
reboot
上传证书和密钥到配置文件夹(配置文件直接使用不用加路径,懒人用)
要配置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;
}
可以使用命令 ./nginx -s reload
也可以通过停止服务与开启服务
检查是否安装执行以下命令:
gcc -v
如果有安装版本以及安装信息,则表明安装完毕,没有则需要安装gcc编译器,会提示“Command not found”。
运行下面命令检查是否安装:
rpm -qa openssl
看到openssl的版本,说明已安装,否则未安装。
查看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库。
检查是否安装执行以下命令:
yum list installed | grep zlib
执行结果:(虽然我这里出现这个版本号依然安装检查时提示缺少zlib library ),所以这个检查是否安装还是不推荐。
如果不安装在安装nginx,在配置nginx会出现下面错误提示。
./configure:error:HTTP gzip模块需要zlib库。
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
互联网当然你也可以搜索每一个库的验证方法。
如果安装过了会提示安装过了**版本,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]#
安装nginx 时候命令 ./configure 也会检查是否缺少以来的软件库。