公司服务器不能连接互联网如何像阿里一样搭建yum源(实验环境centos7.9_2009)

首先准备一台和目标机器环境一样的可以连接公网的服务器进行yum源的准备。

安装两个工具vim 和 tree 方便后续服务器管理

yum install vim
yum install tree

 安装下载软件源所需工具:

yum install yum-utils -y  #这个
  • 查看软件源列表
yum repolist

 处理一个deltarpm问题

yum provides '*/applydeltarpm'
yum install deltarpm

为避文件全部下载到了默认路径,这里在home分区下新建文件夹,全部下载大概有54G

mkdir /home/yum && mkdir /home/yum/Packages
  • 一般来说只用下载base库就够了,当然也可以全部下载下来

 reposync -r base

reposync -r base -p /home/yum/Packages
reposync -r extras -p /home/yum/Packages
reposync -r updates -p /home/yum/Packages

合在一起下的命令:

reposync -r base -p /home/yum/Packages && reposync -r extras -p /home/yum/Packages && reposync -r updates -p /home/yum/Packages

        包拷贝完成之后需要构建yum使用的数据库,以xml文件形式存在,该数据库会对所有包进行分类建立索引,方便yum程序快速搜索安装包和检查包之间的依赖关系。但创建数据库要用到一个工具包createrepo.noarch.rpm,默认是没有的,先要对它进行安装,在刚刚我们下载的rpm包中就有该包,我们可以直接安装。(安装该包需要相关的依赖包,版本对应自己rpm包的版本)

cd /home/yum/Packages
yum install createrepo

 生成repodata信息

createrepo /home/yum/Packages/

 

  • 安装httpd
  • yum install httpd
    

    备份配置文件

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf-bak

修改配置文件

vim /etc/httpd/conf/httpd.conf

 

 权限问题

chown -R apache:apache /home/yum

 

 开启防火墙80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld

chcon -R -t httpd_sys_content_t /home/yum/Packages
semanage fcontext -a -t httpd_sys_content_t "/home/yum/Packages(/.*)?"

 安装semanage

yum install policycoreutils-python
semanage fcontext -a -t httpd_sys_content_t "/home/yum/Packages(/.*)?"
restorecon -R -v /home/yum/Packages
systemctl restart httpd

 本应该是大功告成的,结果如图:

 干脆用nginx

这里先干掉apache的开机启动:

systemctl disable httpd

 因为ngixn  aliyun没有源,没办法用yum安装

这里用源码包

CentOS源码包的一般安装位置在/usr/local/软件名/目录下

源码包需要手动指定安装位置,并且源码包没有卸载命令,所以管理员一定要知道软件安装位置才可以。源码包的卸载方式就是删除安装目录,因为源码包所有文件都在指定目录下。安装位置的不同带来的结果就是启动方式的不同,rpm包安装可以通过systemctl命令启动软件,但是源码包默认不可以,一般要根据说明找到软件包的启动文件,然后使用命令绝对路径/启动文件
start来启动这个源码包软件。

官网下载稳定版nginxNginx官网

  1. 安装nginx所需依赖
    在搭建好了本地yum源的基础上安装
yum -y install    zlib  zlib-devel    
yum -y install    openssl  openssl-devel 
yum -y install    pcre  pcre-devel 
yum -y install    gcc   gcc-c++  make  libtool
#上面四行命令也可合并写作一行

上传、解压、安装Nginx

mkdir /usr/local/nginx                #创建nginx安装目录,路径自定义
cd    /home/download/nginx-1.24.0      #nginx解压目录
./configure  --prefix=/usr/local/nginx  --user=nginx  --group=nginx  --with-http_ssl_module   #安装配置
make  && make install   #编译、安装

 编辑nginx配置文件

cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf   #编辑nginx配置文件

 安装rz上传文件

yum install lrzsz

  • 将nginx加入systemctl管理服务

#按路径创建编辑文件  /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx
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
 

上传文件

cd /usr/lib/systemd/system/
rz

systemctl start nginx.service
systemctl status nginx.service
yum install net-tools 
netstat -ntlup  

文件内容解释   参考原文链接:https://blog.csdn.net/baidu_41711780/article/details/124116999
[Unit]:服务的说明
Description:描述服务
After:描述服务类别

[Service]:服务运行参数的设置
Type=forking 是后台运行的形式
ExecStart 服务的具体运行命令
ExecReload:重载命令
ExecStop:停止命令
PrivateTmp=true表示给服务分配独立的临时空间
启动、重载、停止命令均要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3*
nginx相关操作扩展内容

systemctl enable nginx.service   #设置开机自启
systemctl disable nginx.service  #取消开机自启
systemctl start nginx.service    #启动nginx服务
systemctl stop nginx.sercice     #停止nginx服务
systemctl restart nginx.service  #重启nginx服务
systemctl reload nginx.service   #重新读取nginx配置(不停止服务而使修改的配置生效)
systemctl status nginx.service   #查看nginx服务当前状态
systemctl list-units  --type=service  #查看所有已启动的服务
#初始启动、停止、重载nginx命令:
./nginx -s stop    #强制停止
./nginx -s quit    #等待最后一次交互执行完毕后停止
./nginx -s reload  #重载
./nginx -V     #查看详细版本
./nginx -v     #查看版本
./nginx -t     #检查配置文件是否有误
 #上述初始命令均需至安装路径/sbin/下操作

CentOS7常用命令合集

systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务

启动Nginx并查看端口
systemctl start nginx.service
systemctl status nginx.service
netstat -ntlup  
————————————————

编译安装 Nginx 允许你自定义 Nginx 的功能和优化设置,以满足特定的需求。以下是在 Linux 系统上从源代码编译安装 Nginx 的基本步骤:

1. 安装依赖包

首先,你需要安装编译 Nginx 所需的依赖包。这些依赖包可能因不同的 Linux 发行版而有所不同。以下是一些常见的依赖包:

对于基于 Debian 的系统(如 Ubuntu):

 
bashsudo apt-get update
sudo apt-get install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

对于基于 Red Hat 的系统(如 CentOS 或 Fedora):

 
bashsudo yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2. 下载 Nginx 源代码

从 Nginx 官方网站或其他可信的源下载 Nginx 的最新源代码。

 
bashwget http://nginx.org/download/nginx-latest.tar.gz

3. 解压源代码

 
bashtar -zxvf nginx-latest.tar.gz
cd nginx-* # 进入解压后的目录,* 表示版本号

4. 配置和编译

使用 ./configure 脚本配置编译选项。你可以通过运行 ./configure --help 来查看所有可用的配置选项。

 
bash./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre --with-zlib --with-openssl

上面的命令将 Nginx 安装到 /usr/local/nginx 目录,并启用了 SSL、PCRE、zlib 和 OpenSSL 支持。

接下来,编译源代码:

 
bashmake

5. 安装

一旦编译完成,使用 make install 命令安装 Nginx:

 
bashsudo make install

6. 启动、停止和重启 Nginx

安装完成后,你可以使用以下命令来管理 Nginx 服务:

 
bash# 启动 Nginx
/usr/local/nginx/sbin/nginx

# 停止 Nginx
/usr/local/nginx/sbin/nginx -s stop

# 平滑重启 Nginx(不中断连接)
/usr/local/nginx/sbin/nginx -s reload

# 查看 Nginx 版本
/usr/local/nginx/sbin/nginx -v

或者,你可以将 Nginx 的可执行文件路径添加到系统的 PATH 环境变量中,这样就可以直接运行 nginx 命令了。

7. 设置开机自启动

如果你希望 Nginx 在系统启动时自动运行,你可以创建一个系统服务文件或者使用其他方法来实现。以下是一个简单的示例,展示如何为 Nginx 创建一个 systemd 服务文件:

创建一个新的 systemd 服务文件 /etc/systemd/system/nginx.service

 
ini[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后,重新加载 systemd 的配置并启用服务:

 
bashsudo systemctl daemon-reload
sudo systemctl enable nginx

现在,你可以使用 systemctl 命令来管理 Nginx 服务了:

 
bash# 启动 Nginx
sudo systemctl start nginx

# 停止 Nginx
sudo systemctl stop nginx

# 重启 Nginx
sudo systemctl restart nginx

# 查看 Nginx 服务状态
sudo systemctl status nginx

完成上述步骤后,你就成功地从源代码编译并安装了 Nginx。记得根据你的需求配置 Nginx 的配置文件 /usr/local/nginx/conf/nginx.conf,并测试配置文件的正确性。

               

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值