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

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

一.Apache 基本配置

1.安装http服务

配置yum源

[[email protected] ~]# vim /etc/yum.repos.d/rhel_dvd.repo

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

[[email protected] ~]# yum clean all    ##清空缓存
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] ~]# yum install httpd -y   ##安装httpd

[[email protected] ~]# systemctl start httpd   ##打开服务

[[email protected] ~]# cd /var/www/html

[[email protected] html]# systemctl stop firewalld  ##关闭防火墙
[[email protected] html]# vim index.html
      Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理        ##h1字体设置

在网页浏览:172.25.254.128

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

[[email protected] html]# vim test.html
      Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理  

在网页浏览:172.25.254.128/test.html

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

2.端口更改

[[email protected] ~]# netstat -antlupe | grep httpd   ##查询httpd监听端口

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

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf   ##修改主配置文件
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理  ##原始监听端口为80   Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理  ##将监听端口更改为8090
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# netstat -antlupe | grep httpd    ##查看监听端口信息
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理     
在网页浏览:172.25.254.128:8090/

    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理  ##可以看到将端口更改后,以前在80端口上的信息也可以看到。

3.网页配置

[[email protected] html]# mkdir /westos/html -p
[[email protected] html]# cd /westos/html

[[email protected] html]# vim index.html

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

[[email protected] html]# vim /etc/httpd/conf/httpd.conf
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理

[[email protected]st html]# systemctl restart httpd

在网页浏览:172.25.254.128

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

[[email protected] html]# vim test.html

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

[[email protected] html]# vim /etc/httpd/conf/httpd.conf

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

[[email protected] html]# systemctl restart httpd
[[email protected] html]# ls
    index.html  test.html
[[email protected] html]# pwd
    /westos/html
[[email protected] html]# mkdir linux
[[email protected] html]# ls
    index.html  linux  test.html
[[email protected] html]# cd linux

[[email protected] linux]# vim index.html

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

[[email protected] linux]# vim test.html

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

[[email protected] linux]# vim /etc/httpd/conf/httpd.conf

    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理      ##DirectoryIndex index.html 默认主页名称

[[email protected] linux]# systemctl restart httpd
在网页浏览:172.25.254.128/linux

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


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

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

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

     允许所有人访问
[[email protected] westos]# systemctl start httpd
[[email protected] westos]# systemctl stop firewalld
[[email protected] ~]# cd /var/www/html
[[email protected] html]# ls
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] html]# mkdir westos
[[email protected] html]# ls
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] html]# cd westos/
[[email protected] westos]# vim index.html
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理

[[email protected] westos]# vim /etc/httpd/conf/httpd.conf

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

     Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理       ##优先级,谁在前,先读谁
[[email protected] westos]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos  
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
用虚拟机网页浏览:http://172.25.254.128/westos  

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

      禁止所有人访问
[[email protected] westos]# vim /etc/httpd/conf/httpd.conf
     Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] westos]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
用虚拟机网页浏览:172.25.254.128/westos

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


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

[[email protected] westos]# cd /etc/httpd
[[email protected] httpd]# ls
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] httpd]# htpasswd -cm apacheuser admin  ##-cm新建apache用户并设定密码
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] httpd]# cat apacheuser   ##查看apache的用户
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] httpd]# htpasswd -cm apacheuser tom  ##-cm新建apache用户并设定密码
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] httpd]# cat apacheuser    

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

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

[[email protected] httpd]# htpasswd -m apacheuser admin     ##注意添加用户时要使用-m,否则-cm会覆盖原有的用户
[[email protected] httpd]# cat apacheuser
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] httpd]# vim /etc/httpd/conf/httpd.conf
注释掉之前写的
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] httpd]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos

    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理    ##需要用户和密码登录

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

    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理     ##用admin用户和密码登录时可以看到文件内容

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

    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理    ##用tom用户登录时,一直登录不进去

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

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


三.apache的虚拟主机设置

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

在真机上:
[[email protected] ~]# vim /etc/hosts  ##在访问主机进行域名解析
     Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] ~]# systemctl restart httpd    ##重启http服务 

可以在网页上浏览

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

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

在虚拟机上:
[[email protected] ~]# cd /etc/httpd
[[email protected] httpd]# ls
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] httpd]# cd conf.d/
[[email protected] conf.d]# ls
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# vim default.conf   ##配置默认文件
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# mkdir /var/www/virtual/westos.com/news -p   ##建立虚拟机主机默认发布的目录
[[email protected] conf.d]# mkdir /var/www/virtual/westos.com/music -p
[[email protected] conf.d]# vim /var/www/virtual/westos.com/news/index.html  ##建立虚拟机主机默认发布的文件
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# vim /var/www/virtual/westos.com/music/index.html
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# vim news.conf
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# cp news.conf music.conf
[[email protected] conf.d]# vim music.conf
:%s/news/music/g     ##将文件里所有的news换成music
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# systemctl restart httpd
在网页浏览www.westos.com
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
在网页浏览news.westos.com
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
在网页浏览music.westos.com

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


四.自定义自签名证书

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

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

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

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

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

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

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

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

[[email protected] conf.d]# vim /etc/httpd/conf.d/ssl.conf   ##安装证书及其私钥

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

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

[[email protected] conf.d]# systemctl restart httpd

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

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

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

Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理    ##可以看到看到网址前面有一个小锁


五.apache证书网页重写

在真机上:
[[email protected] ~]# vim /etc/hosts
Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理

[[email protected] ~]# systemctl restart httpd

在虚拟机上:

[[email protected] conf.d]# cp news.conf login.conf
[[email protected] conf.d]# mkdir -p /var/www/virtual/westos.com/login/
[[email protected] conf.d]# vim /var/www/virtual/westos.com/login/index.html
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# vim login.conf
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected]ost conf.d]# systemctl restart httpd
网页浏览:login.westos.com

  Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理    ##输入网址是前面没有加https时也会出现前面的锁


六.php语言支持

[[email protected] conf.d]# yum install php -y
[[email protected] conf.d]# vim /var/www/html/index.php  ##在默认发布目录下建立文件
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# systemctl restart httpd  ##重启http服务后,会生成/etc/httpd/conf.d/php.conf文件
[[email protected] html]# vim /etc/httpd/conf/httpd.conf  
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# systemctl restart httpd
网页浏览:172.25.254.128
   Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理



七.通用网关接口(CGI)

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

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

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

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

[[email protected] ~]# cd /var/www/html

[[email protected] html]# mkdir cgi

[[email protected] html]# ls
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] html]# vim cgi/index.cgi
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] html]# chmod +x cgi/index.cgi  ##给cgi一个可执行文件
[[email protected] html]# ./cgi/index.cgi    ##查看运行出来可看到的结果
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] html]# cd /etc/httpd/conf.d
[[email protected] conf.d]# vim default.conf
写入:     Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] conf.d]# systemctl restart httpd
网页浏览:172.25.254.128/cgi/index.cgi

     Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理    ##可以在网页看到运行脚本的结果


八.搭建Discuz论坛

[[email protected] ~]# systemctl start mariadb      ##先下载好mariadb,再开启服务
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# cd /var/www/html
[[email protected] html]# ls
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理

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

[[email protected] html]# unzip Discuz_X3.2_SC_UTF8.zip     ##解压软件包

[[email protected] html]# ls
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] html]# chmod 777 /var/www/html/upload/ -R     ##要给upload一个可写权限
[[email protected] html]# yum install php-mysql -y
[[email protected] html]# systemctl restart httpd

在网页浏览:http://172.25.254.128/upload/install
Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理

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

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

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

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

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

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


九.squid正向代理

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

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

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

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

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

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

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

[[email protected] Desktop]# systemctl start squid
[[email protected] Desktop]# ping www.baidu.com

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

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

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

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

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

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

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


十.squid反向代理:

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

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

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

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

[[email protected] ~]# systemctl restart squid
[[email protected] ~]# systemctl stop firewalld

在desktop虚拟机:(充当深圳总客服端)
[[email protected] ~]# cd /var/www/html
[[email protected] html]# vim index.html
    Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] html]# systemctl restart httpd
[[email protected] html]# vim /etc/httpd/conf/httpd.conf
     Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
[[email protected] html]# systemctl restart httpd

在网页浏览:http://172.25.254.228/    ##设置里关掉上一步开启的  (充当客户端)
Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理

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

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

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