SNAT、DNAT、虚拟主机

Apache概述

Apache起源

源于A Patchy Server,著名的开源Web服务软件
1995年时,发布Apache服务程序的1.0版本
由Apache软件基金会(ASF)负责维护
最新的名称为“Apache HTTP Server”
官方站点:http://httpd.apache.org/

主要特点

开放源代码,跨平台应用
支持多种网页编程语言
模块化设计,运行稳定,良好的安全性

软件版本
1.X
目前最高版本是1.3,运行稳定
向下兼容性较好,但缺乏一些较新的功能
2.X
目前最高版本是2.4
具有更多的功能特性
与1.X相比,配置管理风格存在较大差异

编译安装httpd服务器

编译安装的优点
具有较大的自由度,功能可定制
可及时获得最新的软件版本
普遍适用于大多数Linux版本,便于移植使用
获得Apache服务器的源码包
参考地址:http://httpd.apache.org/download.cgi

Apache的主要特点

开放源代码
跨平台应用
支持各种Web编程语言:Perl,PHP,Python,Java
模块化设计
运行非常稳定
良好的安全性

Apache的依赖软件包

apr:为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。早期apache为了能够处理各种不同的系统平台的时候调用不同的处理函数,现在apache将通用函数独立出来发展成apr项目
apr-util:完整的apr开发包包含三个:apr,apr-util,apr-iconv。都是为了完成一个功能就是为上层应用提供运行库,只不过和apr提供的数据结果和接口库不一样而已。
pcre-devel:为了支持正则表达式
expat-devel:用来解析XML文档的开发库,主要作用是搜索它的的文档,识别文件指定的位置,调用该部分相应的处理程序,将文件输送到解析器,将文件分割成多个片断,分段装到内存中
perl:内部集成了正则表达式和第三方代码库CPAN。和前面的pcre-devel支持的正则表达式不一样。

Apache配置的选项

选项的作用

–prefix	指定apache程序安装到哪个目录下
–enable-so	启用动态加载模块支持,使httpd具备进一步扩展功能的能力
–enable-rewrite	启用网页地址重写功能,用于网站优化机目录迁移
–enable-charset-lite	启用字符集支持,以便支持使用字符集编码的网页
–enable-cgi	启用CGI脚本程序支持,便于扩展网站的应用访问能力
Apache主要子目录的用途

子目录的用途

/usr/local/httpd/bin	存放httpd服务的各种可执行程序文件
/usr/local/httpd/conf	存放httpd服务的各种配置文件
/usr/local/httpd/htdocs	存放网页文档,包括默认首页文件index.html
/usr/local/httpd/logs	存放httpd服务的日志文件
/usr/local/httpd/modules	存放httpd服务的各种模块文件
/usr/local/httpd/cgi-bin	存放各种CGI程序文件

安装Apache流程

先自己准备自己的环境包 然后拉到服务器根目录
在这里插入图片描述

然后检查一下
在这里插入图片描述
解压缩:3条命令

tar zvxf apr-1.6.2.tar.gz
tar zvxf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2 

在这里插入图片描述

剪切两个文件,解决部分依赖关系

mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

在这里插入图片描述

安装其他依赖文件

yum -y install  pcre-devel expat-devel perl

在这里插入图片描述

添加功能模块

cd httpd-2.4.29
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

在这里插入图片描述

然后编译安装

	make && make install

在这里插入图片描述

添加配置文件

[root@server5 httpd-2.4.29]# cd
[root@server5 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@server5 ~]# vi /etc/init.d/httpd      

在这里插入图片描述
需要添加的值:

#chkconfig: 35 85 21          配置文件
#description: Apache HTTP Server 

[root@server5 ~]# systemctl start httpd
[root@server5 ~]# chkconfig --add httpd
[root@server5 ~]# chkconfig --list

在这里插入图片描述
建立软连接

ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/bin/

在这里插入图片描述

绑定域名

	vi /etc/httpd.conf 

修改:

	ServerName www.chen.com:80

在这里插入图片描述
地址映射

	vi /etc/hosts 
	192.168.100.111  www.Chen.com

在这里插入图片描述

测试

echo “

Mr. Chen

” > /usr/local/httpd/htdocs/index.htm

curl http://www.chen.com

在这里插入图片描述

构建虚拟主机

虚拟web概述

虚拟Web 主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。

httpd服务支持的虚拟主机类型包括以下三种:

基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。
基于IP地址: 为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。
基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号

基于域名

	[root@server5 ~]# mkdir /opt/abc
	[root@server5 ~]# mkdir /opt/acc
	[root@server5 ~]# cd /opt/abc
	[root@server5 abc]# vi index.html
	[root@server5 abc]# cd
 	[root@server5 abc]# cd /opt/acc
	[root@server5 acc]# vi index.html

Mr.Chen

Mr.Chen

在这里插入图片描述

启用服务

	vi /etc/httpd.conf

在这里插入图片描述

vi /usr/local/httpd/conf/extra/httpd-vhosts.conf 

<VirtualHost *:80>
ServerAdmin webmaster@abc.com
DocumentRoot "/opt/abc"
ServerName www.chen.com
ErrorLog "logs/chen.com-error_log"
CustomLog "logs/chen.com-access_log" common
</VirtualHost>
<Directory "/opt/chen">
 Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
 Allow from all
 Require all granted
</Directory>

在这里插入图片描述

映射

	vi /etc/hosts	

在这里插入图片描述

浏览器上查看

在这里插入图片描述

基于IP地址

ifconfig ens33:1 192.168.100.112/24  
ifconfig
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf 
systemctl restart httpd

在这里插入图片描述

添加修改ip地址

<VirtualHost 192.168.100.111:80>

<VirtualHost 192.168.100.112:80>

在这里插入图片描述

浏览器上测试

在这里插入图片描述

基于端口号

修改端口号

vi /usr/local/httpd/conf/extra/httpd-vhosts.conf

在这里插入图片描述

增加监听端口

vi /etc/httpd.conf

在这里插入图片描述

重启查看端口

systemctl restart httpd
netstat -anpt | grep httpd

在这里插入图片描述
在这里插入图片描述

SNAT策略应用环境

局域网主机共享单个公网IP地址接入Internet

SNAT策略的原理

源地址转换,Source Network Address Translation
修改数据包的源地址

在这里插入图片描述

如图所示因为iptables有两张网卡,ens33 和ens37 分别对应不同网段,所以1和2都可以与iptables通信,但是 1和 2不可以通信,因此需要在中间的iptables上做SNAT策略,将2的地址转换成和1同网段才能与1 通信

SNAT策略实现

中间的iptables充当路由器,开启路由功能
echo “net.ipv4.ip_forward=1” > /etc/sysctl.conf
sysctl -p

查看一下策略看看有没有要保留的,或者是冲突策略

iptables -t nat -L
iptables -t nat -I POSTROUTING -s 192.168.100.107/32 -o ens37 -j SNAT --to-source 192.168.2.15

在这里插入图片描述

DNAT策略简介

DNAT和SNAT工作原理类似,入站接受PREROUTING策略匹配

DNAT策略原理

中间的防火墙充当路由器,开启nat功能
防火墙上做策略,指定访问网关的某服务映射给内网服务器
SNAT转换后,源地址变为网关服务器上映射的外网地址

DNAT策略实现
在 上面安装httpd
yum -y install httpd
systemctl start httpd
echo “this is client1” >> /var/www/html/index.html

在iptables设备上做DNAT策略

iptables -t nat -A PREROUTING -i ens33 -d 192.168.100.15 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.16
iptables -t nat -L PREROUTING
curl http://192.168.2.15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值