最近公司竞标一个项目,要在客户环境中部署一套POC环境,客户用的是麒麟系统,登录后发现和CentOS7差不多,把部署Nginx的过程记录一下
下载并上传到服务器
scp nginx-1.22.0.tar.gz poc:/opt/soft_packages
通过rpm安装nginx,无网的情况下安装,下载并上传到服务器
# 下载
wget http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.20.2-1.el7.ngx.x86_64.rpm
# 上传到服务器
scp nginx-1.20.2-1.el7.ngx.x86_64.rpm poc:/opt/soft_packages
安装-编译安装
准备
# 安装pcre
yum install pcre pcre-devel -y
rpm -qa pcre pcre-devel
# 安装openssl
yum install openssl openssl-devel -y
rpm -qa openssl openssl-devel
# 创建运行nginx的用户
useradd nginx -s /sbin/nologin -M
编译安装
cp nginx-1.22.0.tar.gz /usr/local/src/
# 解压
tar -xzvf nginx-1.22.0.tar.gz
cd nginx-1.22.0
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
# 编译说明,可通过./configure --help查看
# --prefix=PATH # 设置安装路径
# --user=USER # 进程用户权限
# --group=GROUP # 进程用户组权限
# --with-http_stub_status_module # 激活状态信息
# --with-http_ssl_module # 激活ssl功能
安装-通过rpm安装
# 检查是否安装pcre,如果没有的话需要安装
rpm -qa pcre pcre-devel
yum install pcre pcre-devel -y
rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm
# 安装时不再分析包之间的依赖关系而直接安装,否则会报参数依赖错误
rpm -ivh nginx-1.20.2-1.el7.ngx.x86_64.rpm --nodeps --force
启动
/usr/sbin/nginx -c /etc/nginx/nginx.conf
# 查看是否启动成功
ps -ef|grep nginx
管理nginx
# 查看配置文件路径
rpm -ql nginx
# 指定配置文件启动
nginx -c /usr/local/nginx/conf/nginx.conf
# 快速关闭nginx
nginx -s stop
# 正常关闭nginx
nginx -s quit
# 验证配置文件
nginx -t
# 重新加载配置文件,平滑重启
nginx -s reload
配置防火墙
要想外部正常访问需要配置访火墙
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --permanent --list-all
遇到的问题
问题1:
[root@poc soft_packages]# rpm -ivh nginx-1.22.0-1.el7.ngx.x86_64.rpm
警告:nginx-1.22.0-1.el7.ngx.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 7bd9bf62: NOKEY
错误:依赖检测失败:
libpcre2-8.so.0()(64bit) 被 nginx-1:1.22.0-1.el7.ngx.x86_64 需要
解决:
- 安装pcre
# 安装前查看一下
rpm -qa pcre pcre-devel
pcre-8.32-17.el7.x86_64
# 安装
yum install pcre pcre-devel -y
# 安装后验证一下,多了一条
rpm -qa pcre pcre-devel
pcre-8.32-17.el7.x86_64
pcre-devel-8.32-17.el7.x86_64
注:
- 安装nginx1.22.0会报上述错误
- 改为nginx1.20.2版本就不会报错了