首页 > 系统相关 >nginx-1.22.1版本的rpm包,自己手动打。

nginx-1.22.1版本的rpm包,自己手动打。

时间:2023-06-22 11:11:29浏览次数:45  
标签:-- root nginx yum web01 1.22 rpm

环境准备

主机名 WanIP LanIP 应用 角色
web01 10.0.0.7 172.16.1.7 fpm 打包工具
web02 10.0.0.8 172.16.1.8 yumrepo yum仓库
web03 10.0.0.9 172.16.1.9 安装rpm包的客户端

web01安装fpm打包工具

# 0.安装依赖
[root@web01 ~]# yum install -y rpm-build

# 1.下载fpm打包工具(ruby)
[root@web01 ~]# wget http://test.driverzeng.com/other/fpm-1.3.3.x86_64.tar.gz

# 2.解压
[root@web01 ~]# tar xf fpm-1.3.3.x86_64.tar.gz

# 3.安装ruby环境
[root@web01 ~]# yum install -y ruby rubygems ruby-devel

gem ruby应用商店 .gem
yum CentOS应用商店 .rpm
pip python库应用商店

# 4.查看gem源
[root@web01 ~]# gem source --list
*** CURRENT SOURCES ***
https://rubygems.org/

# 5.删除官方源
[root@web01 ~]# gem sources --remove https://rubygems.org/

# 6.更换阿里云gem源
[root@web01 ~]# gem sources -a https://mirrors.aliyun.com/rubygems/
https://mirrors.aliyun.com/rubygems/ added to sources

[root@web01 ~]# gem source --list
*** CURRENT SOURCES ***
https://mirrors.aliyun.com/rubygems/

# 7.安装fpm
[root@web01 ~]# gem install *.gem

# 8.检查是否安装成功
[root@web01 ~]# fpm --version
1.3.3

源码安装一下自己想要的nginx版本

# 0.安装依赖
[root@web01 nginx-1.22.1]# yum install -y pcre-devel zlib-devel openssl-devel
# 1.下载nginx源码包
[root@web01 ~]# wget https://nginx.org/download/nginx-1.22.1.tar.gz
# 2.解压
[root@web01 ~]# tar xf nginx-1.22.1.tar.gz
# 3.生成
[root@web01 nginx-1.22.1]# ./configure --prefix=/app/nginx-1.22.1 --with-http_ssl_module
# 4.编译
[root@web01 nginx-1.22.1]# make
# 5.安装
[root@web01 nginx-1.22.1]# make install

fpm
-s dir # 指定将目录、文件打包成rpm
-t rpm # 打包成rpm包
-n nginx # name rpm包的名字
-v 1.6.3 # rpm包的版本
-d 'pcre-devel,openssl-devel' # 指定依赖
--post-install /server/scripts/nginx_rpm.sh # 安装之后,需要执行的命令(脚本)
-f /application/nginx-1.6.3/ # 指定打包的目录

# yum命令可以帮你自动解决依赖关系
## 编写脚本
[root@web01 nginx-1.22.1]# vim /root/install_nginx.sh

#!/bin/bash

groupadd www -g 666
useradd www -u 666 -g 666 -s /sbin/nologin -M

ln -s /app/nginx-1.22.1 /app/nginx


fpm -s dir -t rpm -n yl_nginx -v 1.22.1 -d 'pcre-devel,openssl-devel,zlib-devel'
--post-install /root/install_nginx.sh -f /app/nginx-1.22.1

-----------------------------------------------------

-s, --source: 指定打包源,支持以下源:gem, deb, rpm, python, nodejs, osxpkg, zip等。
-t, --target:指定打包目标,支持以下目标:rpm, deb, pacman, solaris, tar, etc。该选项还可用于指定目标软件包的名称和版本。
-n, --name:指定软件包的名称。
-v, --version:指定软件包的版本号。
-a, --architecture:指定软件包所针对的 CPU 架构,如 x86_64、i386 等。
-m, --maintainer:指定软件包负责人的信息。
-d, --depends:指定软件包所依赖的其他软件包的名称和版本。
-C, --chdir:指定打包时的工作目录。
-p, --package:指定输出的软件包文件名或者目录。
--post-install  软件包安装完成之后所要运行的脚本;同--after-install
--pre-install  软件包安装完成之前所要运行的脚本;同--before-install

nginx包和需要的依赖都拿出来

# 将nginx需要的依赖下载rpm包下来
yum install -y pcre-devel zlib-devel openssl-devel --downloadonly --downloaddir=/root

web02制作yum仓库

### 先在这个机器里安装nginx,就是上面刚打包的。

# 安装createrepo软件(创建存储库)
yum install createrepo -y

# 创建yum仓库目录
mkdir -p /app/nginx/html/yumcache/

## 将保存好的rpm包放入/app/nginx/html/yumcache/

#初始化yum仓库
createrepo -pdo /app/nginx/html/yumcache/ /app/nginx/html/yumcache/

-p, --pretty: 指定在生成 repomd.xml 元数据时使用漂亮的格式。这将使元数据更易于阅读和编辑,但也会增加文件的大小。
-d, --database: 执行额外的数据库检查,以确保所有软件包都已正确索引。如果添加新软件包,或者有软件包因其他原因而改变,则需要运行此选项。
-o, --outputdir: 指定输出目录,即用于存储生成的 repodata 目录和 repomd.xml 文件的目录。

## 当有新的rpm放到/application/nginx/html/yumcache里时,执行更新
createrepo --update /app/nginx/html/yumcache/

#修改nginx配置文件,让它默认访问浏览器找到html/yumcache/目录

cat  >/app/nginx/conf/nginx.conf<<EOF
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html/yumcache;
            autoindex on;         ##开启目录
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
EOF

#检查语法重启nginx服务
/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx

#访问ip可以查看yum仓库内容,下面会多个一个repodata/目录,是createrepo生成的。

web03配置yum源

##客户端部署
gzip /etc/yum.repo.d/*

# 自己新建一个yum源文件
vim /etc/yum.repo.d/nginx.repo
[ttthhh]
name=Repo Name
baseurl=http://10.0.0.8
gpgcheck=0
enabled=1

#清空之前的缓存
yum clean all
错误排查
Error: Package: nginx (myyum)
           Requires: libxslt-develpcre
           
# 在提示类似错误的时候,是缺少某个依赖包,下来放到yum仓库即可。
# 仓库执行update的命令;客户端执行yum clean all

#如果确认仓库有包,但是客户端没有,排查思路
#1、yum仓库createrepo --update /application/nginx/html/yumcache/
#2、客户端,yum clean all;
#3、如何还不可以,服务端删除生成的repodata目录,重新createrepo -pdo /application/nginx/html/yumcache/ /application/nginx/html/yumcache/,然后执行第二步;
#在客户机安装的时候总提示没有可用的安装包,最后发现是/etc/yum.repos.d/下的文件名后缀写错了。
在客户机安装的时候总是提示文件找不到,什么都不能安装
error was [Errno 2] Local file does not exist: /root/pdate/libiconv-devel-1.14-1.x86_64.rpm
  libxml2-devel-2.7.6-21.el6_8.1.x86_64: failed to retrieve libxml2-devel-2.7.6-21.el6_8.1.x86_64.rpm from m01
error was [Errno 2] Local file does not exist: /root/pdate/libxml2-devel-2.7.6-21.el6_8.1.x86_64.rpm
  libX11-devel-1.6.3-2.el6.x86_64: failed to retrieve libX11-devel-1.6.3-2.el6.x86_64.rpm from m01
error was [Errno 2] Local file does not exist: /root/pdate/libX11-devel-1.6.3-2.el6.x86_64.rpm
  libXt-1.1.4-6.1.el6.x86_64: failed to retrieve libXt-1.1.4-6.1.el6.x86_64.rpm from m01
error was [Errno 2] Local file does not exist: /root/pdate/libXt-1.1.4-6.1.el6.x86_64.rpm
  mhash-0.9.9.9-3.el6.x86_64: failed to retrieve mhash-0.9.9.9-3.el6.x86_64.rpm from m01
error was [Errno 2] Local file does not exist: /root/pdate/mhash-0.9.9.9-3.el6.x86_64.rpm
  libmcrypt-2.5.8-9.el6.x86_64: failed to retrieve libmcrypt-2.5.8-9.el6.x86_64.rpm from m01
error was [Errno 2] Local file does not exist: /root/pdate/libmcrypt-2.5.8-9.el6.x86_64.rpm

## 解决方法:在服务端在/application/nginx/html/yumcache/下删除repodata    这个目录然后执行 createrepo --update /application/nginx/html/yumcache即可

标签:--,root,nginx,yum,web01,1.22,rpm
From: https://www.cnblogs.com/xiutai/p/17497593.html

相关文章

  • Kubernetes Ingress 之 Nginx Ingress
    一.引言k8s提供了一下四种方式来暴露端口,分别是:ClusterIP,仅供集群内部访问NodePort,端口映射,给node随机分配端口,然后由service进行代理LoadBalancer,负载均衡模式,一般由云服务商提供负载均衡策略Ingress,网关模式,使用自定义的http(s)路由规则对Service进行代理。这也是实......
  • Nginx配置详解
    1基本概念1.1Nginx简介Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现好。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接......
  • Nginx具体应用
    配置文件结构nginx的配置文件(conf/nginx.conf)整体上分为三部分:全局块、events块、http块。具体结构图如下:在全局块、events块以及http块中,我们经常配置的是http块。在http块中可以包含多个server块,每个server块可以配置多个location块。部署静态资源Nginx可以作为静......
  • Nginx 的 try_files 指令使用实例
    Nginx的配置语法灵活,可控制度非常高。在0.7以后的版本中加入了一个try_files指令,配合命名location,可以部分替代原本常用的rewrite配置方式,提高解析效率。try_files指令说明try_files指令语法:try_filesfile...uri或try_filesfile...=code默认值:无作用域:serverlocati......
  • nginx:报错upstream sent too big header(nginx 1.24)
    一,报错信息:访问网站时报错:如图: 查看nginx的错误日志:2023/06/1610:21:46[error]416087#0:*71148upstreamsenttoobigheaderwhilereadingresponseheaderfromupstream,client:223.72.69.14,server:blog.liuhongdi.com,request:"GET/index......
  • 【问题解决】 网关代理Nginx 301暴露自身端口号
    一般项目上常用Nginx做负载均衡和静态资源服务器,本案例中项目上使用Nginx作为静态资源服务器出现了很奇怪的现象,我们一起来看看。“诡异”的现象部署架构如下图,Nginx作为静态资源服务器监听8080端口,客户浏览器通过API网关的443端口(就是https)获取Nginx静态资源。现象是用户浏览......
  • nginx+keepalived
    nginx:1.正向代理:访问转到代理服务,然后去访问正式的地址。2.反向代理:通过一个入口,进行请求转发。3.负载均衡:不同的解析服务器(比如tomcat)进行负载均衡。4.动静分离:将静态的与需要服务器解析分开,以提高访问速度。keepalived:健康检测。为负载均衡而生。如果服务器出现故障......
  • 将 Vue 项目部署到 Nginx 上
    将Vue项目部署到Nginx上安装Nginx下载地址:nginx:download(1)因为我在Windows系统下安装Nginx,所以选择nginx/Windows-1.22.1。下载的资源是一个压缩包,解压后即可使用。(2)打开命令行提示符(cmd),切换到Nginx的根目录,启动Nginx服务器。cd/DD:/software/nginx-1.22.1......
  • BUUCTF:[SUCTF 2019]Pythonginx
    @app.route('/getUrl',methods=['GET','POST'])defgetUrl():url=request.args.get("url")host=parse.urlparse(url).hostnameifhost=='suctf.cc':return"我扌yourproblem?111&q......
  • Liunx nginx服务
    目录一、nginx概念二、nginx特点三、nginx应用场景四、nginx和apache五、阻塞和非阻塞六、同步和异步七、编译安装nginx八、升级nginx九、总结     一、nginx概念1.nginx概念Nginx("enginex")是一个高性能的HTTP和反向代理服务器。Nginx......