一、题目要求
1.配置ssh实现A,B主机互相免密登录
2.配置nginx服务,通过多ip区分多网站
二、实验
实验开始前需准备两台 linux 主机便于充当服务端以及客户端,两台主机 IP 如下图:
实验1:配置 ssh 实现 A,B 主机互相免密登录
第一种情况:192.168.96.142 为服务端,192.168.96.132 为客户端
1. 首先关闭服务端 142 的防火墙以及 selinux,我们可以通过查看防火墙以及 selinux 的状态来判断我们是否成功关闭这两个程序
[root@server ~]# systemctl stop firewalld # 此次主机运行期间关闭防火墙
[root@server ~]# setenforce 0 # 关闭 selinux
2.在客户端 132 利用非对称算法 RSA 生成密钥
[root@client ~]# ssh-keygen -t RSA
[root@client ~]# ll /root/.ssh/
3.将当前主机公钥发送到目标主机 root 用户的家目录下的 .ssh/authorized_keys
[root@client ~]# ssh-copy-id root@192.168.96.142
4.客户端 132 登录服务端142主机实现免密登录
第二种情况:192.168.96.142 为客户端,192.168.96.132 为服务端
注:第一种情况做法写的很清楚,第二种情况将第一种情况的主机客户端与服务端交换即可
1.我们还是先将服务端 132 的防火墙以及 selinux 关闭
2.在客户端 142 利用非对称算法 RSA 生成密钥
3.将当前主机公钥发送到目标主机 root 用户的家目录下的 .ssh/authorized_keys
4.客户端 142 登录服务端 132 主机实现免密登录
至此,咱们实现了两台 linux 主机之间的免密互联!
实验2:配置nginx服务,通过多ip区分多网站
1.关闭服务器 142 的防火墙以及 selinux
[root@server ~]# systemctl stop firewalld
[root@server ~]# setenforce 0
2.通过 mount 将光盘挂载,如若失败可检查 CD/DVD 光盘是否正常连接
[root@server ~]# mount /dev/sr0 /mnt
3.通过 ll 命令查看 yum 源仓库配置文件,之后利用 vim 编辑该文件
① 查看文件
[root@server ~]# ll /etc/yum.repos.d/base.repo
② 编辑文件
[root@server ~]# vim /etc/yum.repos.d/base.repo
[BaseOS] # 路径的标识名
name=BaseOS # 描述名
baseurl=file:///mnt/BaseOS # 定义yum源的统一资源定位符,路径
gpgcheck=0 # 关闭软件包的 GPG 签名验证
enabled=1 # 是否开启该仓库 1为开启,0为关闭
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1
4.dnf 安装软件包,这里因为已经下载过,所以显示已安装
[root@server ~]# dnf install nginx -y
5.安装完成后启动 nginx 程序并查看该程序状态,显示 Active: active (running) 则表示程序启动成 功
[root@server ~]# systemctl start nginx
[root@server ~]# systemctl status nginx
6.在 Windows 系统下任意浏览器进行网址访问(http://192.168.96.142,网址为 linux 服务端 IP)
7.利用 nmtui 图形化的命令来配置多个 IP 地址
① 首先进入到选项中选择编辑连接
[root@server ~]# nmtui
② 选择欲编辑的以太网点击编辑
③ 这里需要强调的都在图中说明,编辑完成即可退出;如果网关未显示,可在 linux 终端查询本机默认网关,这里默认网关为 192.168.96.2;还有一点为记得将 IPV4 配置从自动改为手动
[root@server ~]# ip route show default
④ 确认退出后需激活网卡信息,可以看到我们添加的多个 IP 都已经成功激活
[root@server ~]# nmcli connection up ens33 # 激活网卡
[root@server ~]# ip a # 查看当前所有网络接口的详细信息
8. 通过多 IP 区分多网站,需要注意的是每行代码写完都要加分号!
[root@server ~]# vim /etc/nginx/conf.d/ip.conf # 进入nginx配置文件
server {
listen 80;
server_name 192.168.96.142;
root /www;
location / {
index index.html;
}
}
server {
listen 80;
server_name 192.168.96.100;
root /www/100;
location / {
index index.html;
}
}
server {
listen 80;
server_name 192.168.96.200;
root /www/200;
location / {
index index.html;
}
}
9. 修改配置文件后需重启程序,重启后什么都不显示说明配置没有问题,但不一定能访问成功
[root@server ~]# systemctl restart nginx
10.配置后访问网页发现403错误,此时我们虽然配置了 /www 路径以及 index.html 文件,但是我们没有创建该路径和文件
11.创建 /www 路径以及 index.html 文件,创建好后可刷新页面即可看到我们写入的内容
[root@server ~]# mkdir -pv /www/{100,200}
mkdir: 已创建目录 '/www'
mkdir: 已创建目录 '/www/100'
mkdir: 已创建目录 '/www/200'
[root@server ~]# echo this is 142 > /www/index.html
[root@server ~]# echo this is 100 > /www/100/index.html
[root@server ~]# echo this is 200 > /www/200/index.html
12.访问这三个网页可以看到对应写入的内容
http://192.168.96.142
http://192.168.96.100
http://192.168.96.200
注:查看哪里出问题了可以查看我们的 nginx 服务状态
[root@server ~]# systemctl status nginx.service
查找文件多少行出现问题,可以在命令模式下输入“:set nu”
查看日志信息排错,最新日志在最后
[root@server ~]# journalctl -xeu nginx.service