Linux企业化运维--(1)Rhel7.6的封装与nginx的安装部署

Linux企业化运维

实验所用系统为Redhat-rhel7.6。

Linux企业化运维–Rhel7.6的封装与nginx

一、虚拟机的封装

1、建立

在真机执行virt-manager命令,建立虚拟机。点击左上角的小电视create a new virtual machine,选择Local install mediaiso选择rhel7.6Memory需要2048CPU2个,iamge20G就好,对其进行命名,就可以点击finish
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

选择第一条安装,对时区、键盘、关掉kdump内存灾难恢复、选择自动分区(系统默认分区方式为lvm,更适合生产环境),然后对root用户进行密码设定即可。
请添加图片描述
请添加图片描述
请添加图片描述

虚拟机安装完成。

2、配置

对建立好的虚拟机进行主机名IP网关,DNS设定,重启网络,并停掉网络管理器,因其可能会自动变动网络,作地址解析使ssh连接更迅速。

hostnamectl set-hostname server1				##主机名
vi /etc/sysconfig/network-scripts/ifcfg-eth0	##IP,网关,DNS设定
///
TYPE=Ethernet
BOOTPROTO=static
IPADDR=172.25.24.1
PREFIX=24
GATEWAY=172.25.24.250
DNS1=114.114.114.114
NAME=eth0
DEVICE=eth0
ONBOOT=yes
///
systemctl restart network					##重启网络
systemctl disable --now NetworkManager		##停掉网络管理器,可能会自动变动网络
vi /etc/hosts								##地址解析,使ssh连接更迅速
///
172.25.24.250	foundation24.ilt.example.com	##真机IP
172.25.24.1	server1								##快照1IP
///

请添加图片描述

然后在真机ssh连上该虚拟机,为了方便之后的多虚拟机实验,重新进行地址解析,添加IP,并且配置网络软件仓库安装常用软件,设定selinux状态为disabled关闭火墙,最后关闭虚拟机

###真机
ssh -l root 172.25.24.1
vi /etc/hosts						##地址解析,使ssh连接更迅速
///
172.25.24.250	foundation24.ilt.example.com
172.25.24.1	server1
172.25.24.2	server2
172.25.24.3	server3
172.25.24.4	server4
172.25.24.5	server5
172.25.24.6	server6
172.25.24.7	server7
172.25.24.8	server8
172.25.24.9	server9
172.25.24.10	server10
///
cd /etc/yum.repos.d
vi dvd.repo							##软件仓库
///
[dvd]
name=dvd
baseurl=http://172.25.24.250/rhel7.6
gpgcheck=0
///
yum repolist						##列出
yum install -y vim lftp net-tools(常用网络工具) bash-*(补齐命令)
vim /etc/sysconfig/selinux			##设定selinux状态
///
disabled
///
systemctl disable --now firewalld	##关闭火墙
poweroff							##必须关闭虚拟机

请添加图片描述
请添加图片描述

3、封装

切入硬盘目录,发现我们建立的base虚拟机系统太大,占用资源,对其进行封装。

cd /var/lib/libvirt/images	##硬盘目录
ls
du -sh base.qcow2			##系统太大,占用资源,对其封装

请添加图片描述

安装清理压缩的软件,然后清理磁盘文件(注意,此处不能加.qcow2后缀,只写域名),压缩原虚拟机为base-new.qcow2,然后检验压缩后的大小,确实节省资源。

yum install libguests-tools.noarch libguestfs-tools-c.x86_64 -y		##清理压缩的软件
virt-sysprep -d base					##清理磁盘文件(注意,此处不能加.qcow2后缀,只写域名)
which virt-sparsify						##压缩原虚拟机的命令,查找此命令
rpm -qf /usr/bin/virt-sparsify			##没有则安装
virt-sparsify --compress base.qcow2 base-new.qcow2					##压缩原虚拟机为base-new.qcow2
du -sh base-new.qcow2					##确定大小,一般只有几百兆

请添加图片描述

创建快照,在后在管理器上添加快照,快照打开后,进入root用户,设定其主机名,IP,然后重启网络,检查IP,在真机上试着ssh连接。并将其他两个虚拟机快照按此过程进行设定。

qemu-img create -f qcow2 -b base-new.qcow2 server1	##创建快照
qemu-img create -f qcow2 -b base-new.qcow2 server2
qemu-img create -f qcow2 -b base-new.qcow2 server3

virt-manager										##在管理器上添加快照
create a new virtual machine-->import existing disk image-->/var/lib/libvirt/images/server1-->Red Hat Enterprise Linux 7.6-->2048-->server1--finish
###server1
root												##登陆root用户
hostnamectl set-hostname server1	
vi /etc/sysconfig/network-scripts/ifcfg-eth0
///172.25.24.1
systemctl restart network							##注意重启网络
ip addr												##检查ip
在真机试连接ssh
###其他快照皆如此

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

关闭快照,查看基本信息,并设定火墙策略。

qemu-img info server4											##查看基本信息
iptables -t nat -I POSTROUTING -s 172.25.24.0/24 -j MASQUERADE 	##火墙策略(本机网段)

封装完成。

[注意] 最开始的虚拟机base的主机名设为server1,但其作为之后的快照的母盘是不可轻易写与执行的,因此需要将其缓存清理掉,保持最干净的状态,然后对其进行虚拟机快照,我们的实验都将在快照上执行,读的是母盘虚拟机base,写的是快照server*。因此第一个快照完全复制母盘,主机名为server1,IP为172.25.24.1,与母盘相同。

二、nginx源码安装

三部曲configure–>makefile–>make install

  1. 第一步 cofigure
    在server1中,安装nginx,并解压。
###server1
lftp 172.25.254.250				##此处可以在网上寻找该开源软件
> ls 
> cd pub/docs/lamp
> get nginx-1.20.1.tar.gz
> exit
ls
tar zxf nginx-1.20.1.tar.gz 	##解压

源码编译,但在编译过程中会提醒缺少依赖,安装依赖后重新编译。

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio	##源码编译;设定下载目录同时安装服务,但是失败,需要下载依赖
yum install -y gcc	
yum install -y pcre-devel
yum install -y openssl-devel
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio	##重新configure

请添加图片描述

  1. 第二步 执行cofigure结束会生成makefile
cd objs/
ls-->nginx
du -sh nginx

请添加图片描述

  1. 第三步 make install
cd ..(nginx-1.20.)		##切入该目录
make install			
cd /usr/local
ls-->nginx
cd nginx/
ls
cd sbin
ls
./nginx					##开启服务
netstat -antlp			##查看端口,80端口
curl localhost			##可以看到源码

请添加图片描述

但是如果每次开启或者关闭服务都需要进入指定目录,很不方便,则关闭服务后,建立软链接以开启全局nginx。

cd nginx-1.20.1/
cd /usr/local/nginx/sbin/							##开启nginx服务需要进入该目录,不方便
./nginx -s stop										##关闭服务
netstat -antlp										##没有80端口
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/	##建立软链接方便开启全局nginx

然后清空缓存,编辑配置文件,缩小nginx大小,删除版本号,减少被攻击的机会,提高安全性。

make clean					##清除缓存
cd auto 
cd cc
vim gcc						##瘦身nginx,减少被攻击机会
///
# debug
#CFLAGS="$CFLAGS -g"
///

cd nginx-1.20.1/
vim src/core/nginx.h		##删除隐藏版本号以及“/”,提高安全性
///
#define NGINX_VER          "nginx" 		
///##原本是"nginx/" NGINX_VERSION

重新进行源码编译configure,然后执行make(注意不要执行make install),可以查看到nginx被缩小。

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
make 
cd objs/
ls-->nginx
du -h nginx	##瘦身成功,安全性提高

请添加图片描述

检测语法,并检验,版本号是否被隐藏。
请添加图片描述

进一步对nginx进行配置,新建nginx用户,通过该用户进行配置,然后重启服务。

cd /usr/local/nginx/conf
useradd -d /usr/local/nginx -M -s /sbin/nologin nginx
vim nginx.conf
///
user  nginx;
worker_processes  auto;

events {
    worker_connections  65535;
}
///
cd /etc/pam.d
vim /etc/security/limits.conf 
///
ngnix  - nofile 65536			##最后一行加入
///
nginx -s reload

三、nginx开机自启

关闭nginx服务,编辑nginx服务文件,然后刷新服务列表,开启服务。


cd /usr/lib/systemd/system/
lftp 172.25.254.250
> ls 
> cd pub/docs/lamp
> get nginx.service
> exit
vim nginx.service
///
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
///
systemctl daemon-reload					##刷新服务列表
systemctl enable --now nginx.service	##开机自启

请添加图片描述
如果不能刷新,则过滤工作端worker,并关闭,然后重新执行。

ps ax | grep nginx
kill -9 worker的id
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值