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/)