apache服务(四)正向、反向代理、squid充当轮循调度以及论坛的搭建

1.正向代理

问题:主机本身无法上网,但是可以在浏览器中上网。
方法:让可以上网的主机可以搭建一个squid的环境,使另外一个无法上网的主机上网
-1-首先使一台虚拟机(服务端)可以连上网络

[root@dns-server Desktop]# ping 114.114.114.114

在这里插入图片描述
-2-在服务端下载squid

[root@dns-server ~]# yum install squid -y

在这里插入图片描述
-3-进入squid的主配置文件进行修改

[root@dns-server ~]# vim /etc/squid/squid.conf

在这里插入图片描述
配置文件中修改的内容如下:

http_access allow all
cache_dir ufs /var/spool/squid 100 16 256

在这里插入图片描述
注意:最多可以缓存100M,16个一级目录,每个目录下有256个目录
-4-重新启动squid服务

[root@dns-server ~]# systemctl restart squid

在这里插入图片描述
-5-在客户端设置一个静态ip并查看

[root@dns2 ~]# ifconfig

在这里插入图片描述
-6-试图在客户端的shell中试图连接网络,发现无论连接域名还是解析过的域名或者114.114.114.114都无法连接

[root@dns2 ~]# ping 114.114.114.114
[root@dns2 ~]# ping www.baidu.com

在这里插入图片描述
-7-试图在浏览器中连接网络,发现依旧无法连接
在这里插入图片描述
-8-配置浏览器中的设置,为其加代理,依次点击Edit->Preference->Advanced->Network->Connection Settings->Manual proxy configuration(写入服务端的主机ip以及连接网络的端口)
在这里插入图片描述
在这里插入图片描述
-9-再次刷新客户端浏览器,发现可以连接网络
在这里插入图片描述
-10-同时在客户端的shell中试图连接网络,发现无论连接域名还是解析过的域名或者114.114.114.114依旧无法连接

[root@dns2 ~]# ping 114.114.114.114
[root@dns2 ~]# ping www.baidu.com

在这里插入图片描述
-11-关闭代理,直接在浏览器的设置中取消代理,为了不影响接下来的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:
1.服务端的防火墙要关闭
2.如果虚拟机无法连接网络,需要在真机中开启防火墙以及路由
3.可以使用rpm -qc squid查看关于squid的文件
4.如果不想使用代理,则直接在浏览器的设置中取消即可
5.一定要在服务端中写入nameserver 114.114.114.114

在这里插入图片描述
6.如果出现以下问题,说明在服务端的配置文件中不允许别的主机使用代理(http_access allow all有问题)
在这里插入图片描述
7.[root@dns-server ~]# rpm -qa | grep httpd ##查看httpd相关的安装包
在这里插入图片描述
8.支持虚拟域和支持虚拟接口(位置不可换)
9.代理服务器挂掉之后要给另外(另外一个服务器的端口号3130)一个接口通知备用接口替代他的主机,说明只做代理
10.设置的端口号是在/etc/squid/squid.conf的文件内的第59行的http_port 3128中查看的

补充:
squid的缓存目录的详细解释(即cache_dir ufs /var/spool/squid 100 16 256):
[root@dns-server ~]# cd /var/spool/squid ##进入/var/spool/squid文件
[root@dns-server squid]# ls ##查看一级目录
[root@dns-server squid]# cd 00/
[root@dns-server 00]# ls ##查看而二级目录
[root@dns-server 00]# ls | wc -l ##查看而机目录的数量
在这里插入图片描述

2.反向代理

不能有httpd,因为会占用端口
深圳(desktop):服务端
西安(server):客户端
通过访问服务端ip地址跳转到客户端
<1>首先在客户端关闭httpd服务器,避免占用端口

[root@xiaan ~]# systemctl status httpd

在这里插入图片描述
<2>在客户端安装squid软件

[root@xiaan ~]# yum install squid -y

在这里插入图片描述
<3>在客户端进入squid的主配置文件进行修改并使其服务生效

[root@xiaan ~]# vim /etc/squid/squid.conf
[root@xiaan ~]# systemctl restart squid

在这里插入图片描述
添加的配置内容如下:

http_port 80 vhost vport
cache_peer 172.25.254.166 parent 80 0 proxy-only
cache_dir ufs /var/spool/squid 100 16 256

在这里插入图片描述
<4>关闭客户端和服务端的防火墙

[root@shenzhen ~]# systemctl stop firewalld
[root@xiaan ~]# systemctl stop firewalld

在这里插入图片描述在这里插入图片描述
<5>查看服务端的httpd并在共享目录下的文件下写入内容

[root@shenzhen ~]# cd /var/www/html
[root@shenzhen html]# ls
[root@shenzhen html]# vim index.html
[root@shenzhen html]# cat index.html

在这里插入图片描述
<6>在服务端打开浏览器并输出客户端的ip,结果出现的却是服务端中写入的内容
在这里插入图片描述

注意:
1.客户端如果没有httpd,需要下载
2.如果出现以下报错,说明服务端没有开httpd服务

在这里插入图片描述

3.squid充当轮循调度

<1>在服务端配置本机解析文件

[root@shenzhen ~]# vim /etc/hosts

在这里插入图片描述
在配置文件中写入以下内容:

172.25.254.228 www.westos.com 

在这里插入图片描述
<2>在客户端(代理)进入squid的主配置文件并生效

[root@xiaan ~]# vim /etc/squid/squid.conf
[root@xiaan ~]# systemctl restart squid

在这里插入图片描述
修改的配置内容如下:

http_access allow all
http_port 80 vhost vport
cache_peer 172.25.254.166 parent 80 0 proxy-only name=web1 round-robin originserver 	
cache_peer 172.25.254.129 parent 80 0 proxy-only name=web2 round-robin originserver
cache_peer_domain web1 web2 www.westos.com

在这里插入图片描述
<3>试图在服务端浏览器中进行访问,输入域名后,会呈现出ip为172.25.25.166中的内容(共享目录下/var/www/html/index.html的内容),再次刷新后,会呈现出ip为172.25.25.129中的内容
输入域名后:
在这里插入图片描述

<4>在客户端(代理)进入squid的主配置文件并生效

[root@xiaan ~]# vim /etc/squid/squid.conf
[root@xiaan ~]# systemctl restart squid

修改的配置内容如下:

http_access allow all
http_port 80 vhost vport
cache_peer 172.25.254.128 parent 80 0 proxy-only name=web1 round-robin originserver weight=2
cache_peer 172.25.254.129 parent 80 0 proxy-only name=web2 round-robin originserver
cache_peer_domain web1 web2 www.westos.com

<5>试图在服务端浏览器中进行访问,输入域名后,会呈现出ip为172.25.25.128中的内容(共享目录下/var/www/html/index.html的内容),因为设置了权重,所以再刷新两次后,会呈现出ip为172.25.25.129中的内容,再次刷新一次后,会又呈现出p为172.25.25.128中的内容

注意:
1.服务端的防火墙要关闭
2.在服务端中输入的两个主机都成功开启httpd
3.客户端不要安装httpd,可能会占用端口
4.cache_peer 172.25.254.128 parent 80 0 proxy-only name=web1 round-robin originserver ##80指连接浏览器的端口,0指当服务器挂掉后另外一台备用的(通过进入目录/usr/share/doc/squid-3.3.8/squid.conf.documented
可以查看到本机没有备用服务器)服务 ##proxy-only指只能代理 ##name=web1是给呈现出ip为172.25.25.128中的内容(共享目录下/var/www/html/index.html的内容)起的别名 ##round-robin用的是轮循方式##originserver说明为哪一个域名服务(本机为www.westos.com),只有设置这个参数才会去识别round-robin(轮循)
5.进行论循调度可以为站点负责的两台主机(只有在访问www.westos.com)分担一些
6.轮循调度都是为一个站点所服务的
7.在客户端不要设置dns(本机不做解析),都则会占用端口

4. 创建论坛

<1>首先将论坛的安装包移动到想要安装论坛的主机的共享目录中

[root@foundation66 Desktop]# scp Discuz_X3.2_SC_UTF8.zip root@172.25.254.166:/var/www/html

在这里插入图片描述
<2>进入共享目录并查看安装包是否移至进去

[root@shenzhen ~]# cd /var/www/html
[root@shenzhen html]# ls

在这里插入图片描述
<3>解压论坛安装包

[root@shenzhen html]# unzip Discuz_X3.2_SC_UTF8.zip 

在这里插入图片描述
<4>查看readme文件,此文件是安装说明(会被优先使用)

[root@shenzhen html]# ls
[root@shenzhen html]# cd readme
[root@shenzhen readme]# ls
[root@shenzhen readme]# vim readme.txt

在这里插入图片描述
readme.txt中的内容如下(可以看到部分安装说明):
在这里插入图片描述
<5>根据安装说明,进入upload后更改config/和data/的权限

[root@shenzhen readme]# cd ..
[root@shenzhen html]# cd upload
[root@shenzhen upload]# ls
[root@shenzhen upload]# chmod 777 -R config/
[root@shenzhen upload]# chmod 777 -R data/

在这里插入图片描述
<6>开启数据库和httpd

[root@shenzhen upload]# systemctl start mariadb
[root@shenzhen upload]# systemctl start httpd

在这里插入图片描述
<7>在浏览器中输入ip地址及目录,点击下一步之后,会出现报错问题
在这里插入图片描述
在这里插入图片描述
<8>查看selinux状态,发现selinux状态是Enforcing
[root@shenzhen upload]# getenforce
在这里插入图片描述
<9>查看关于httpd的安全上下文类型

[root@shenzhen upload]# semanage fcontext -l | grep httpd

在这里插入图片描述
<10>更改httpd的安全上下文

[root@shenzhen upload]# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/upload(/.*)?'
[root@shenzhen upload]# restorecon -FvvR /var/www/html/upload

在这里插入图片描述
在这里插入图片描述
<11>在浏览器中输入ip地址及目录,点击下一步之后,依旧会出现报错问题
在这里插入图片描述
在这里插入图片描述
<12>更改文件权限

[root@shenzhen upload]# chmod 777 uc_* -R
[root@shenzhen upload]# ls

在这里插入图片描述
<13>在浏览器中输入ip地址及目录,点击下一步之后,之前的错误已经成功解决,但是依旧有报错问题,如果出现了以下报错,需要对mariadb初始化,并尝试访问(要记住用户名称和密码)

[root@shenzhen upload]# mysql_secure_installation
[root@shenzhen upload]# mysql -uroot -p

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

在这里插入图片描述
<14>初始化数据库并尝试登陆
在这里插入图片描述
<15>安装php-mysql插件并重启服务,报错便会消失

[root@shenzhen upload]# yum install php-mysql -y
[root@shenzhen upload]# systemctl restart httpd

在这里插入图片描述
在这里插入图片描述<16>在浏览器中输入ip地址及目录,发现可以成功安装并进入论坛,具体操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
<17>进入论坛后可进行用户登录
在这里插入图片描述
在这里插入图片描述

总结:
1.Web服务器上的主流的网络平台架构可以是Linux+Apache+Mysql+PHP=LAMP,也可以是Linux+Nginx+Mysql+PHP/Perl/Python=LNMP,解释为Linux是平台,nginx协议的软件,mysql数据和网络的交互,php对网页上交互的页面进行设定
2.cdn是一种加速技术
3.squid(VPN:通过网络拨号实现的,相当于一个隧道,代理的软件有很多,squid)
4.默认情况是只有自己可以进入代理
5.主配置目录是conf,子配置目录是conf.d(在etc/httpd/confconf.d/)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建Squid代理服务器可以让你在局域网中共享网络连接,也可以用于加速网络访问和保护网络安全。以下是Squid代理服务器的搭建步骤: 1. 安装Squid 在Linux系统上,可以使用以下命令安装Squid: ``` sudo apt-get update sudo apt-get install squid ``` 2. 配置Squid Squid配置文件位于`/etc/squid/squid.conf`,可以使用文本编辑器打开该文件进行配置。以下是一些常用的配置项: - http_port:指定Squid监听的端口,默认为3128。 - cache_dir:指定Squid缓存文件存放的目录。 - acl:定义访问控制列表,可以限制用户访问特定的网站或IP地址。 - http_access:定义用户访问控制规则,可以根据acl来控制用户访问权限。 例如,以下是一个简单的Squid配置文件: ``` http_port 3128 cache_dir ufs /var/spool/squid 100 16 256 acl localnet src 192.168.0.0/16 http_access allow localnet http_access deny all ``` 上面的配置表示Squid监听3128端口,使用`/var/spool/squid`目录作为缓存文件存放目录,允许192.168.0.0/16网段的用户访问,拒绝其他用户访问。 3. 启动Squid 配置完成后,可以使用以下命令启动Squid: ``` sudo service squid start ``` 4. 配置客户端 在客户端上,可以将Squid代理服务器作为默认的HTTP代理服务器。在浏览器中,可以在设置中配置代理服务器地址和端口号。在命令行中,可以使用`export`命令设置`http_proxy`环境变量: ``` export http_proxy=http://squid_server_ip:3128/ ``` 其中`squid_server_ip`为Squid代理服务器的IP地址。 这样,客户端的HTTP请求就会经过Squid代理服务器。如果需要使用HTTPS代理,可以在配置文件中添加以下配置项: ``` https_port 3129 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/myCA.pem ssl_bump server-first all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER ``` 其中,`https_port`指定Squid监听的HTTPS端口号,`ssl-bump`开启SSL中间人攻击,`sslproxy_cert_error`允许使用自签名证书,`sslproxy_flags`关闭服务器证书验证。在客户端上,需要将HTTPS代理配置为`http://squid_server_ip:3129/`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值