Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理

       Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上 ,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中。同时Apache音译为阿帕奇

一.Apache 基本配置

1.安装http服务

配置yum源

[root@localhost ~]# vim /etc/yum.repos.d/rhel_dvd.repo

   

[root@localhost ~]# yum clean all    ##清空缓存
   
[root@localhost ~]# yum install httpd -y   ##安装httpd

[root@localhost ~]# systemctl start httpd   ##打开服务

[root@localhost ~]# cd /var/www/html

[root@localhost html]# systemctl stop firewalld  ##关闭防火墙
[root@localhost html]# vim index.html
              ##h1字体设置

在网页浏览:172.25.254.128

    

[root@localhost html]# vim test.html
        

在网页浏览:172.25.254.128/test.html

   

2.端口更改

[root@localhost ~]# netstat -antlupe | grep httpd   ##查询httpd监听端口

   

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf   ##修改主配置文件
      ##原始监听端口为80     ##将监听端口更改为8090
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# netstat -antlupe | grep httpd    ##查看监听端口信息
         
在网页浏览:172.25.254.128:8090/

      ##可以看到将端口更改后,以前在80端口上的信息也可以看到。

3.网页配置

[root@localhost html]# mkdir /westos/html -p
[root@localhost html]# cd /westos/html

[root@localhost html]# vim index.html

   

[root@localhost html]# vim /etc/httpd/conf/httpd.conf
   

[root@localhost html]# systemctl restart httpd

在网页浏览:172.25.254.128

   

[root@localhost html]# vim test.html

   

[root@localhost html]# vim /etc/httpd/conf/httpd.conf

   

[root@localhost html]# systemctl restart httpd
[root@localhost html]# ls
    index.html  test.html
[root@localhost html]# pwd
    /westos/html
[root@localhost html]# mkdir linux
[root@localhost html]# ls
    index.html  linux  test.html
[root@localhost html]# cd linux

[root@localhost linux]# vim index.html

   

[root@localhost linux]# vim test.html

   

[root@localhost linux]# vim /etc/httpd/conf/httpd.conf

          ##DirectoryIndex index.html 默认主页名称

[root@localhost linux]# systemctl restart httpd
在网页浏览:172.25.254.128/linux

   


二、配置基于用户的身份验证

     Apache 无格式文件用户身份验证
在此配置中 , 用户账户和密码存储在本地 .htpasswd 文件中。
处于安全原因 , 该文件不能保存在网站的 DocumentRoot 中 ,
而应保存在 Web 服务器不提供服务的一些目录中。

1.设定其他用户的访问限制

     允许所有人访问
[root@localhost westos]# systemctl start httpd
[root@localhost westos]# systemctl stop firewalld
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
   
[root@localhost html]# mkdir westos
[root@localhost html]# ls
   
[root@localhost html]# cd westos/
[root@localhost westos]# vim index.html
   

[root@localhost westos]# vim /etc/httpd/conf/httpd.conf

    ##修改主配置文件时要将之前添加进去的所有内容都删除,再将注释的内容还原

            ##优先级,谁在前,先读谁
[root@localhost westos]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos  
   
用虚拟机网页浏览:http://172.25.254.128/westos  

    

      禁止所有人访问
[root@localhost westos]# vim /etc/httpd/conf/httpd.conf
    
[root@localhost westos]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos
   
用虚拟机网页浏览:172.25.254.128/westos

   


2.允许指定用户访问,且需要认证

[root@localhost westos]# cd /etc/httpd
[root@localhost httpd]# ls
   
[root@localhost httpd]# htpasswd -cm apacheuser admin  ##-cm新建apache用户并设定密码
   
[root@localhost httpd]# cat apacheuser   ##查看apache的用户
   
[root@localhost httpd]# htpasswd -cm apacheuser tom  ##-cm新建apache用户并设定密码
   
[root@localhost httpd]# cat apacheuser    

       

##建立了两个用户后发现现在只有一个用户,admin用户被tom用户覆盖

[root@localhost httpd]# htpasswd -m apacheuser admin     ##注意添加用户时要使用-m,否则-cm会覆盖原有的用户
[root@localhost httpd]# cat apacheuser
   
[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf
注释掉之前写的
   
[root@localhost httpd]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos

        ##需要用户和密码登录

   

         ##用admin用户和密码登录时可以看到文件内容

   

        ##用tom用户登录时,一直登录不进去

注意:用有效密码登陆后需要删除登陆密码的历史记录,否则其他用户也可以直接登录。

          在配置文件中加入Require valid-user   是允许文件的所有用户登录。


三.apache的虚拟主机设置

      虚拟主机允许您从一个 httpd 服务器同时为多个网站提供服务。
在本节中 , 我们将了解基于名称的虚拟主机其中多个主机名都指
向同一个 IP 地址 , 但是 Web 服务器根据用于到达站点的主机名
提供具有不同内容的不同网站。

在真机上:
[root@foundation68 ~]# vim /etc/hosts  ##在访问主机进行域名解析
     
[root@foundation68 ~]# systemctl restart httpd    ##重启http服务 

可以在网页上浏览

         

可以看到,三个网页出现的内容都是一样的

在虚拟机上:
[root@localhost ~]# cd /etc/httpd
[root@localhost httpd]# ls
   
[root@localhost httpd]# cd conf.d/
[root@localhost conf.d]# ls
   
[root@localhost conf.d]# vim default.conf   ##配置默认文件
   
[root@localhost conf.d]# mkdir /var/www/virtual/westos.com/news -p   ##建立虚拟机主机默认发布的目录
[root@localhost conf.d]# mkdir /var/www/virtual/westos.com/music -p
[root@localhost conf.d]# vim /var/www/virtual/westos.com/news/index.html  ##建立虚拟机主机默认发布的文件
   
[root@localhost conf.d]# vim /var/www/virtual/westos.com/music/index.html
   
[root@localhost conf.d]# vim news.conf
   
[root@localhost conf.d]# cp news.conf music.conf
[root@localhost conf.d]# vim music.conf
:%s/news/music/g     ##将文件里所有的news换成music
   
[root@localhost conf.d]# systemctl restart httpd
在网页浏览www.westos.com
   
在网页浏览news.westos.com
   
在网页浏览music.westos.com

   


四.自定义自签名证书

       如果加密的通信非常重要 , 而经过验证的身份不重要 , 管理员可
 以通过生成 self-signed certificate 来避免与认证机构进行交互

所带来的复杂性使用 genkey 实用程序 ( 通过 crypto-utils 软件包分发 ),

生成自签名证书及其关联的私钥。为了简化起见 ,genkey 将在
“正确”的位置 (/etc/pki/tls 目录 ) 创建证书及其关联的密钥。
相应地 , 必须以授权用户 (root) 身份运行该实用程序。

[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# yum install mod_ssl crypto-utils -y
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# genkey www.westos.com  ##生成证书

   

    

   


[root@localhost conf.d]# vim /etc/httpd/conf.d/ssl.conf   ##安装证书及其私钥

   

  

[root@localhost conf.d]# systemctl restart httpd

在网页浏览:https://www.westos.com/



    ##可以看到看到网址前面有一个小锁


五.apache证书网页重写

在真机上:
[root@foundation68 ~]# vim /etc/hosts

[root@foundation68 ~]# systemctl restart httpd

在虚拟机上:

[root@localhost conf.d]# cp news.conf login.conf
[root@localhost conf.d]# mkdir -p /var/www/virtual/westos.com/login/
[root@localhost conf.d]# vim /var/www/virtual/westos.com/login/index.html
   
[root@localhost conf.d]# vim login.conf
   
[root@localhost conf.d]# systemctl restart httpd
网页浏览:login.westos.com

      ##输入网址是前面没有加https时也会出现前面的锁


六.php语言支持

[root@localhost conf.d]# yum install php -y
[root@localhost conf.d]# vim /var/www/html/index.php  ##在默认发布目录下建立文件
   
[root@localhost conf.d]# systemctl restart httpd  ##重启http服务后,会生成/etc/httpd/conf.d/php.conf文件
[root@localhost html]# vim /etc/httpd/conf/httpd.conf  
   
[root@localhost conf.d]# systemctl restart httpd
网页浏览:172.25.254.128
  



七.通用网关接口(CGI)

     通用网关接口 (CGI) 是网站上放置动态内容的最简单的方法。

CGI 脚本可用于许多目的 , 但是谨慎控制使用哪个 CGI 脚本

以及允许谁添加和运行这些脚本十分重要。编写质量差的 CGI

脚本可能为外部攻击者提供了破坏网站及其内容安全性的途径。
因此 , 在 Web 服务器级别和 SELinux 策略级别 , 都存在用于限
制 CGI 脚本使用的设置.

[root@localhost ~]# cd /var/www/html

[root@localhost html]# mkdir cgi

[root@localhost html]# ls
   
[root@localhost html]# vim cgi/index.cgi
   
[root@localhost html]# chmod +x cgi/index.cgi  ##给cgi一个可执行文件
[root@localhost html]# ./cgi/index.cgi    ##查看运行出来可看到的结果
   
[root@localhost html]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim default.conf
写入:    
[root@localhost conf.d]# systemctl restart httpd
网页浏览:172.25.254.128/cgi/index.cgi

         ##可以在网页看到运行脚本的结果


八.搭建Discuz论坛

[root@localhost ~]# systemctl start mariadb      ##先下载好mariadb,再开启服务
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
   

下载一个Discuz_X3.2_SC_UTF8.zip论坛软件包到/var/www/html

[root@localhost html]# unzip Discuz_X3.2_SC_UTF8.zip     ##解压软件包

[root@localhost html]# ls
   
[root@localhost html]# chmod 777 /var/www/html/upload/ -R     ##要给upload一个可写权限
[root@localhost html]# yum install php-mysql -y
[root@localhost html]# systemctl restart httpd

在网页浏览:http://172.25.254.128/upload/install





注意:在安装数据库的时候要设定一个密码,否则会报错



   ##登录用户就可以了


九.squid正向代理

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

  squid可以做代理也可以做缓存。

  squid不仅可以做正向代理,又可以做反向代理。

  正向代理,squid后面是客户端,客户端上网要通过Squid去上;反向代理,squid后面是服务器,服务器返回给用户数据需要走squid。

在真机上:(要保证可以上网)
[root@foundation68 Desktop]# yum install squid -y
[root@foundation68 Desktop]# vim /etc/squid/squid.conf

   

    

[root@foundation68 Desktop]# systemctl start squid
[root@foundation68 Desktop]# ping www.baidu.com



在虚拟机上的网页浏览:www.baidu.com   ##设置

 

 

##可以在不能上网的虚拟机打开百度,是因为它缓存了主机上的网页。


十.squid反向代理:

在server虚拟机:IP=172.25.254.228(充当西安分客服端)
[root@xian ~]# yum install squid -y
[root@xian ~]# systemctl start squid
[root@xian ~]# vim /etc/squid/squid.conf



[root@xian ~]# systemctl restart squid
[root@xian ~]# systemctl stop firewalld

在desktop虚拟机:(充当深圳总客服端)
[root@shenzhen ~]# cd /var/www/html
[root@shenzhen html]# vim index.html
   
[root@shenzhen html]# systemctl restart httpd
[root@shenzhen html]# vim /etc/httpd/conf/httpd.conf
    
[root@shenzhen html]# systemctl restart httpd

在网页浏览:http://172.25.254.228/    ##设置里关掉上一步开启的  (充当客户端)



##这样用客户端就可以看到想要看到的内容,并且快速又方便。

注意:在所有实验中,httpd服务要处于打开状态,防火墙处于关闭状态,这样在网页上才能查看到内容。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值