Apache

apache
实验前配置
需要一台服务器端主机
配置好ip 和yum源
安装好httpd服务
1.apache
企业中常用的web服务,用来提供http://(超文本传输协议)

#2.apache的安装部署
yum install httpd -y       ##安装http服务
yum install httpd-manual   ##安装apache服务手册


systemctl start httpd      ##启动apache服务
systemctl enable httpd     ##设置apache服务开机自启
firewall-cmd --list-all                      ##列出火墙信息
firewall-cmd --permanent --add -service=http  ##永久允许http
firewall-cmd --reload       ##火墙重新加载策略

/var/www/html         ##apache的/目录,默认发布目录
/var/www/html/index   ##apache的默认发布文件


vim /var/www/html/index.html
<h1> hello world </h1>
:wq

测试  http://172.25.254.145
      http://172.25.254.145/manual

3.apache的基础信息
#主配置目录:  /etc/httpd/conf
#主配置文件:  /etc/httpd/conf/httpd.conf
#子配置目录:   /etc/httpd/conf.d/
#子配置文件:   /etc/httpd/conf.d/*.conf
#默认发布目录:   /var/www/html
#默认发布文件:  index.html
#默认端口:   80
#默认安全上下文:  httpd_sys_content_t
#程序开启默认用户: apache
#apache日志:   /etc/httpd/logs/*
 如果开启了selinux需要修改安全场下文为httpd_sys_content_t

4.修改默认配置文件
(1)修改默认端口
vim /etc/httpd/conf/httpd.conf    ##通过修改主配置文件修改端口 apache默认监听端口80 修改后访问时加:端口
42  Listen 8080   ##修改默认端口为8080

firewall-cmd --prmanent --add-port=8080/tcp ##在防火墙中添加
                                               修改的端口号
firewall-cmd --reload
systemctl restart httpd

测试:http://172.25.254.145:8080         ##需要在ip地址后面添加端口号:8080

(2)修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序

vim /etc/httpd/conf/httpd.conf
164   DirectoryIndex test.html indexhtml  ##当index.html不存在时访问test.html  或者当二者都存在时,读取前者

(3)修改默认发布目录:
vim /etc/httpd/conf/httpd.conf
先删除 119  DocumentRoot "/var/www/html"
119 DocumentRoot "/westos/html"
120 <Directory "/westos">
         Require all granted
122</Directory>

systemctl restart httpd

    注意:在测试完成后,为了在以后的使用中不出错,需要将设置恢复

    注意:在修改后如果无法访问时,需要将目录的安全上下文进行修改

                       semanage fcontext -a -t httpd_sys_content_t'/www(/.*)?'

                       restorecon -RevvF /www/

                       如果selinux中设置为disabled,则无需进行安全上下文的设定

            注意:所有对配置文件的更改操作后,需要重新启动服务才能生效

5.apache访问控制
  1.针对主机的访问控制
    mkdir /var/www/html/westos -p
    vim  /etc/httpd/conf/httpd.conf
      <Directory "/var/www/html/westos">
           Order Deny,Allow
           Allow from 172.25.254.45
           Deny from All
      </Directory>
    

systemctl restart httpd    ##重启服务
    测试:在ip为172.25.254.45中http://172.25.254.145/westos
   

   vim  /etc/httpd/conf/httpd.conf
      <Directory "/var/www/html/westos">
           Order Allow,Deny
           Allow all
           Deny from 172.25.254.45
      </Directory>

systemctl restart httpd


   2.针对用户的访问控制

    mkdir /var/www/html/admin            ##先建立用户的目录


   htpasswd -cm /etc/httpd/westosuser admin    ##创建用户admin
                                      及westosuser文件
   htpasswd -m  /etc/httpd/westosuser admin1   ##创建用户admin1 如果已有westosuser文件,新建用户时则不能加参数m 否则原来的westosuser文件会被覆盖 之前创建的用户也会消失

   cat westosuser       ##查看新建用户信息

在配置文件中写入模块进行设定,与apache联系起来
<Directory "/var/www/html/admin">   #管理的文件目录
 AuthUserFile /etc/httpd/userpass       #密码文件
 AuthName "Please input your nameand passwd"  #访问时的提示语
 AuthType basic    #最基本的验证方式
 #Require user admin   #只允许admin用户通过验证进行访问
  Require valid-user    #允许所有有效用户通过验证后进行访问
</Directory>

测试:http://172.25.254.145/admin

允许所有用户进行访问

6.虚拟主机

应用场景:在只有一台服务器的情况下,想挂多个网站,那么apache下配置虚拟主机可以满足这个需求

服务器端:

  mkdir /var/www/virtual/news/html -p

 mkdir /var/www/virtual/music/html -p

 vim /var/www/virtual/news/html/index.html   ##编写访问westos.news.com时看到的网页

 vim /var/www/virtual/music./html/index.html   ##编写访问music.westos.com时要看的网页

vim /etc/httpd/conf.d/a_default.conf      ##要以a 开头否则顺序读取的时候读不到

第一行: 指定站点名称
第二行:站点默认发布目录
第三行:站点日志,combined标志四种日志的集合

vim news.conf

vim music.conf

systemctl restart httpd    ##重其apache服务

在浏览器测试端配置dns解析文件  vim  /etc/hosts

测试:www.westos.com

music.westos.com

news.westos.com

7.apache默认的语言

除了html还有php和cgi

1)php
安装php
yum install php -y(我已经安装过了)


重启httpd

vim /var/www/html/index.php
<\?php
phpinfo();
\?>

测试:172.25.254.145/index.php

2)第一个cgi插件

mkdir /var/www/html/cgi

cd /var/www/html/cgi

vim index.cgi

chmod +x index.cgi

./index.cgi        ##如果不能执行说明代码有问题

 

vim /etc/httpd/conf.d/a_default.conf

systemctl restart httpd

测试:172.25.254.145/cgi/index.cgi

https服务
   yum install mod_ssl -y


   firewall-cmd --permanent --add-service=https ##永久允许
                                                  https服务
   firewall-cmd --reload       ##火墙重新加载策略
    
   测试:打开https://172.25.254.145然后获得证书

   如果想要修改关于安全证书的信息:
   yum install crypto-utils


   genkey www.westos.com   ##生成证书和秘匙

如果在下图这个界面卡住不动请晃动鼠标或者输入字符,因为是通过获取字符随机生成证书和钥匙

   
    是否将证书发送给CA组织认证,企业认证都是收费的,所以选择NO

这里不要勾选Encrypt the private key,不然无法设置自启动

这里自己填写证书信息


   
    修改/etc/httpd/conf/ssl.conf 配置
    100 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
    107 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key

systemctl restart httpd

测试:www.westos.com


 https重写
    mkdir /var/www/virtual/login/html -p
    vim /var/www/virtual/login/html/index.html

cd /etc/httpd/conf/conf.d
cp news.conf login.conf
vim login.conf

^(/.*)$        ##客户在浏览器地址中输入的所有字符
https://    ##强制用户加密访问  
%{HTTP_HOST}    ##客户请求主机
$1        ##"$1"标示^(/.*)$的值
[redirect=301]  ##临时重写 302永久转换
systemctl restart httpd
测试:输入https://login.westos.com成功
删除掉“https://”回车打开,发现会自动加上“https://“

测试login.westos.com

squid

定义:Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务 器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络 安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。

:172.25.254.145主机为squid服务器,通过配置网络使其能够上网

                172.25.254.45主机为测试端,无法上网,通过在浏览器中指向其代理服务器为172.25.254.145,从而能够上网

    ####注意:要用自己真机ip作为网关让虚拟机上网,首先得把真机伪装打开通道打开,然后将虚拟机dns改为114.114.114.114网关改为真机ip

[root@foundation45 ~]# vim /etc/sysctl.conf


[root@foundation45 ~]# sysctl -p
net.ipv4.ip_forward = 1

 

 

1.服务器端

yum install squid -y   安装squid服务

systemctl  start squid          开启squid服务

 vim /etc/sysconfig/network-scripts/ifcfg-eth0   配置网络使其能够上网(配置网关和dns)

编辑/etc/squid/squid.conf文件,允许为所有主机提供代理

编辑完成后重启服务,查看端口,发现能够ping通百度

测试:firefox--->edit--->preferences-->advanced--->network--->settings

测试时必须关掉服务端的火墙和selinux  并且在客户端测试时进浏览器测试,ping不同,因为没有做解析

2:在网站后台架构中,代理缓存主要部署在web server之上,当用户对网站后台发起连接请求时,用户请求先到代理缓存中去查找,如果命中,则将请求返回给用户,如果没有命中,则代理缓存将请求发到 web server,然后web servr将请求复制一份到代理缓存,同时把请求返回给客户。为了实现对用户透明访问,需要使用DNS来引导用户来访问squid服务器,以实现透明的加 速服务。

1)squid服务器端(172.25.245.245)

安装squid服务,关闭防火墙

编辑/etc/squid/squid.conf配置文件,完成后重启服务

2.客户端(172.25.254.45)

测试:
打开浏览器输入172.25.254.245这时会访问到145

这是145的主机界面

 

轮询

1)squid客户端:

在squid服务器端编辑/etc/squid/squid.conf文件,从客户端过来的请求,如果是www.westos.com,则squid服务器先向Sever 172.25.254.145的80端口发送请求。刷新后,则向Sever 172.25.254.245的80端口发送请求

  proxy-only:直接获取对方缓冲,转交给代理服务器的客户端,而不存入本地

  round-robin:如果设置数部上层服务器,那么轮流查询父级服务器

 originalserver:源服务器

 name=a :表示给cache_peer一个别名

编辑/etc/hosts文件

172.25.254.245 www.westos.com

测试:在浏览器中输入www.westos.com,第一次出现的主页是172.25.254.145主机的页面,再次刷新出现的是172.25.254.144主机的页面。现实中两个页面应该是相同的,在这用于测试。

命中率

在squid服务器端编辑/etc/squid/squid.conf文件,在172.25.254.145这行后添加weight=3,表示在172.25.254.145的页面刷新三次后才后出现172.25.254.245主机的页面

 

 


  

©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页