Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )

Linux 下 Apache 服务程序的部署

首先了解一下网络服务

我们平时访问的网站服务就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务。Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户

  • 目前能够提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等
    • IIS(Internet Information Services)互联网信息服务是由微软公司提供的基于运行Microsoft Windows的互联网基本服务
    • Nginx(engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
    • Apache 是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中

接下来就讲述 Linux 下Apache 服务程序的部署(在 SELinux permissive 或 disabled 的情况下进行操作)

1. 安装 apache 客户端并了解其基本配置服务的文件参数

1.1 对 apache 客户端进行安装

 [root@apache-server ~]# yum install httpd.x86_64 -y
 Loaded plugins: langpacks
 Resolving Dependencies
 --> Running transaction check
 ---> Package httpd.x86_64 0:2.4.6-17.el7 will be installed
 .........(我是用来省略的).........
 Installed:
   httpd.x86_64 0:2.4.6-17.el7

 Complete!
 安装服务完成,启动服务,关闭防火墙
 [root@apache-server ~]# systemctl start httpd  #启动服务
 [root@apache-server ~]# systemctl stop firewalld.service  #关闭防火墙
 查看 httpd 服务的 80 端口是否开启: 
 [root@apache-server ~]# netstat  #查看网络连接、路由表、接口统计信息、化装连接和多播成员
                        -a:显示监听和非监听(对于TCP这意味着已建立的连接)套接字
                        -l:仅显示监听套接字
                        -n:不进行DNS轮询,显示IP(可以加速操作)
                        -p : 显示进程标识符和程序名称
                        -t:指明显示TCP端口
                       -u:指明显示UDP端口
 [root@apache-server ~]# netstat -antlup | grep http
                   #查看 http 服务端口                      
 可以通过修改 httpd 的配置文件来进行对端口的修改
 [root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
 编辑第 42 行修改端口号(注只能修改为空闲端口,修改完后重启服务)
 .........(我是用来省略的).........
  41 #Listen 12.34.56.78:80
  42 Listen 80

服务安装完成,开启服务,关闭防火墙,可以在浏览器中输入主机 ip 进行查看 /var/www/html/ 的信息
执行如下:
安装完成后查看服务端口
这里写图片描述
配置文件(/etc/httpd/conf/httpd.conf)的第 42 行管理其默认端口
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第1张图片
在浏览器中查看
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第2张图片
第一句话说明:该页面用于测试 Apache HTTP 服务器安装后的正确操作。如果您能够阅读这个页面,这意味着在这个站点上安装的 Apache HTTP 服务器工作正常。

1.2 apache 基本服务文件参数管理

httpd 服务基本配置完成,其基本服务文件参数如下:

服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
默认发布目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log
默认发布文件 /var/www/html/index.html

可以通过编辑配置文件修改其默认发布目录与默认发布文件

1.2.1 默认发布文件管理

apache 的默认发布文件可通过主配置文件进行修改

 主配置文件 /etc/httpd/conf/httpd.conf 第 163 行左右
 [root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
 .........(我是用来省略的).........
 160 # DirectoryIndex: sets the file that Apache will serve if a directory
 161 # is requested.
     # 目录索引:设置当请求目录时,Apache将服务的文件。
 162 #
 163 
 164     DirectoryIndex index.html  #默认发布文件为 index.html
 165 
 在 /var/www/html/ 编辑 index.html 文件,在浏览器中查看效果

执行如下:
主配置文件 /etc/httpd/conf/httpd.conf 关于默认发布文件的内容:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第3张图片
在 /var/www/html/ 编辑 index.html 文件,在浏览器中查看效果
编辑内容如下:
这里写图片描述
浏览器中查看效果:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第4张图片

修改默认发布文件
编辑配置文件 vim /etc/httpd/conf/httpd.conf

 [root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
 内容如下:
 163 
 164 #    DirectoryIndex index.html
 165     DirectoryIndex test.html  #将默认发布文件修改为 test.html
 166 
 167 
 重启服务后在浏览器中测试

执行如下:
修改配置文件设置默认访问文件为 test.html
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第5张图片
在 /var/www/html/ 编辑 test.html
这里写图片描述
在浏览器中查看效果
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第6张图片
原来的发布文件 /var/www/html/index.html 可以通过在浏览器中输入 “apache 服务器 IP/index.html”来查看
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第7张图片

1.2.1 默认发布目录管理

修改默认发问目录:

 建立新的目录,作为新的默认发布目录,并在默认发布目录下建立子目录
 建立 /test/html 作为默认发布目录
 建立 /test/html.lin 作为子目录
 编辑主配置文件:
 [root@apache-server ~]# vim /etc/httpd/conf/httpd.conf120行左右
 120 DocumentRoot "/test/html"          #修改apache的默认访问目录
 121 
 122 "/test">               
 123 #       Allow open access:
 124         Require all granted        #允许任何人通过apache访问/test
 125         DirectoryIndex test.html   #/test/下的所有目录的默认访问文件为
                                        #test.html
 126 
 127 
 128 "/test/html/lin">       #对于 /test/html/lin 来说
 129         DirectoryIndex index.html  #该目录下的默认访问文件为index.html
 130 
 ~
 编辑完成重启服务,在浏览器中查看结果,若是无法显示无法访问,注意 SELlinx 是否关闭

执行如下:
创建目录,编辑配置文件并重启服务
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第8张图片
编辑默认发布文件内容:
/test/html 默认发布文件 test.html 内容
这里写图片描述
/test/html/lin 默认发布文件 index.html 内容
这里写图片描述
配置文件内容如下:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第9张图片
在浏览器中查看
/test/html
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第10张图片
/test/html/lin
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第11张图片
由上可知,子目录的默认发布文件可以进行自行规定,若是不指定则是全局规定的默认发布文件

2. Apache 服务的访问限制

对 Apache 服务的访问可以过 IP 或者用户建立进行限制
注:还原上述默认发布文件及目录的修改

2.1 基于 IP 的访问限制

 建立 /var/www/html/test 用来作为限制目录
 编辑主配置文件:
 [root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
 编辑内容如下:(在第 130 行左右进行添加)
 130 "/var/www/html/test">  #区域配置
 131         Order Allow,Deny          #读取顺序:先读Allow后读Deny
                                       #(注意先后顺序)
 132         Allow from all            #允许所有人访问
 133         Deny from 172.25.151.50   #禁止此 IP 访问
 134 

 编辑完成重启服务,在浏览器中查看效果

执行如下:
建立目录与文件
这里写图片描述
发布文件内容
这里写图片描述
禁止 IP 172.25.151.50 访问
这里写图片描述
在浏览器中查看
IP 为 172.25.151.250 的用户可以查看
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第12张图片
IP 为 172.25.151.50 的用户,可以访问 /var/www/html 但不可访问被限制的目录 /var/www/html/test
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第13张图片
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第14张图片

2.2 基于用户的访问限制

建立创建访问用户
在 /etc/httpd/ 下进行操作

 [root@apache-server httpd]# htpasswd    #管理用户文件从而进行基本身份验证。
 -c   #创建passwdfile。如果passwdfile已经存在,它将被重写并截断。这个选项不能
      #与-n选项相结合。
 -m   #使用MD5加密的密码
 [root@apache-server httpd]# htpasswd -cm apacheuser lin   #创建用户lin
 [root@apache-server httpd]# htpasswd -m apacheuser juan    #创建用户juan
 建立成功后会在 /etc/httpd/ 下生成 apacheuser 文件
 编辑主配置文件进行访问限制
 127 "/var/www/html/test">
 128         AuthUserFile /etc/httpd/apacheuser    
             #访问用户的文件
 129         AuthName "Please input user and password!!!"
             #显示提示信息
 130         AuthType basic
             #认证类型为basic
 131         Require user lin
             #允许用户 lin 登陆访问
 132         #Require valid-user
             #允许所有可用用户进行访问
 133 
 编辑完成重启服务,在浏览器中查看效果

执行如下:
创建用户
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第15张图片
编辑配置文件,只允许用户 lin 进行访问,若想允许所有用户访问可将第 134行修改为 Require valid-user 允许所有可用用户进行访问
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第16张图片
在浏览器中查看效果:
输入不被允许的用户 juan 的用户名密码,或是不输入,则会显示如下
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第17张图片
错误信息提示:
此服务器无法验证您是否被授权访问所请求的文档。要么您提供了错误的凭据(例如,错误的密码),要么您的浏览器不理解如何提供所需的凭据。
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第18张图片
输入允许访问的用户 lin 的用户名密码,访问成功
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第19张图片
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第20张图片

2. Apache 服务单 IP 多节点测试页面部署(虚拟主机)

我们同过固定 IP 来进行Apache 服务访问站点的建立,一个 IP 只能作为一个访问页面,是对网络资源的浪费,因此可以使用一个 IP 发布多个节点的测试页来解决此问题

2.1 编辑本地解析(在浏览器所在主机编辑)

编辑浏览器所在的本地解析文件 /etc/hosts

 [root@foundation151 ~]# vim /etc/hosts vim /etc/hosts
 编辑内容如下:
 172.25.151.150 www.server.com nba.server.com music.server.com
 为 IP 添加多个域名作为节点,让本地浏览器可以识别以上域名

执行如下:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第21张图片

2.2 为各个节点编辑配置文件

在 /etc/httpd/conf.d/ apache的子配置目录中添加编辑 default.conf文件

vim default.conf    编辑默认配置文件
内容如下:
  1 80>  #虚拟访问的默认端口为80
  2         DocumentRoot /var/www/html   #默认目录为/var/www/html
  3         CustomLog "logs/default.log" combined   #用户日志
  4 
===========================================================================================
 为各个节点建立对应的目录
 [root@apache-server html]# mkdir /var/www/html/virtual/server.com/nba/ -p
 [root@apache-server html]# mkdir /var/www/html/virtual/server.com/music/ -p
 编辑节点的默认访问文件
 [root@apache-server html]# vim /var/www/html/virtual/server.com/nba/index.html
 [root@apache-server html]# vim /var/www/html/virtual/server.com/music/index.html
=========================================================================================== 
 编辑各节的配置文件:
 music.server.com 的配置文件
 [root@apache-server ~]# vim /etc/httpd/conf.d/music.conf
  1 80>   #访端口为 80
  2         ServerName music.server.com   #域名为 music.server.com
  3         DocumentRoot "/var/www/html/virtual/server.com/music/"
              #访问目录为:"/var/www/html/virtual/server.com/music/"
  4         CustomLog "logs/musics.log" combined
              #用户日志文件为:/etc/httpd/logs/musics.log
  5 
  6 "/var/www/html/virtual/server.com/music/">
  7         Require all granted      #此目录允许任何人访问
  8 .server.com 的配置文件
 vim /etc/httpd/conf.d/nba.conf
 内容如下:
  1 80>   #访端口为 80
  2         ServerName nba.server.com     #域名为 nba.server.com
  3         DocumentRoot "/var/www/html/virtual/server.com/nba/"
              #访问目录为:"/var/www/html/virtual/server.com/nba/"
  4         CustomLog "logs/nba.log" combined
              #用户日志文件为:/etc/httpd/logs/nba.log
  5 
  6 "/var/www/html/virtual/server.com/nba/">
  7         Require all granted      #此目录允许任何人访问
  8 

然后重启服务

执行如下:
目录、文件创建完成后,进行编辑
编辑music.server.com nba.server.com 的发布文件
nba.server.com 的发布文件
这里写图片描述
music.server.com 的发布文件
这里写图片描述

编辑配置文件
/etc/httpd/conf.d/default.conf
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第22张图片
/etc/httpd/conf.d/music.conf
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第23张图片
/etc/httpd/conf.d/nba.conf
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第24张图片
在浏览器中进行查看
输入 www.server.com 访问 /var/www/html/
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第25张图片
输入 nba.server.com 访问 /var/www/html/virtual/server.com/nba/
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第26张图片
输入 music.server.com 访问 /var/www/html/virtual/server.com/music/
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第27张图片

3. Apache 服务 https 认证加密证书,密钥

  • HTTP 缺省工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务,HTTP 所封装的信息是明文的,通过抓包工具可以分析其信息内容,如果这些信息包含有你的银行卡帐号、密码,你肯定无法接受这种服务,HTTPS 就是可以加密这些敏感信息的服务
  • HTTPS 缺省工作在 TCP 协议 443 端口,它的工作流程一般如以下方式:
    (1)完成TCP三次同步握手
    (2)客户端验证服务器数字证书,通过,进入步骤3
    (3)DH算法协商对称加密算法的密钥、hash算法的密钥
    (4)SSL安全加密隧道协商完成
    (5)网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改
    如果HTTPS是网银服务,以上SSL安全隧道成功建立才会要求用户输入账户信息,账户信息是在安全隧道里传输,所以不会泄

具体操作如下:

 使用 genkey 实用程序(通过 crypto-untils 软件包分发),生成自签名证书及其关联的私钥。为
 了简化起见,genkey 将在“正确”的位置(/etc/pki/tls目录)创建证书及其相关的密钥,必须以 
 root 用户运行核实程序
 安装 mod_ssl
 [root@apache-server ~]# yum install mod_ssl.x86_64 -y
 安装 crypto-utils
 [root@apache-server ~]# yum install crypto-utils.x86_64 -y 
 ls /etc/httpd/conf.d/
 可看到生成了 ssl.conf 文件
 [root@apache-server ~]# genkey www.server.com    #生成该网页的证书与密钥
 生成证书文件: /etc/pki/tls/certs/www.server.com.crt
 生成密钥文件: /etc/pki/tls/private/www.server.com.key

 编辑 /etc/httpd/conf.d/ssl.conf 将生成的证书与密钥信息添加进去
 [root@apache-server ~]# vim /etc/httpd/conf.d/ssl.conf
  编辑第 100 行和第 107100 SSLCertificateFile /etc/pki/tls/certs/www.server.com.crt  #证书文件
  107 SSLCertificateKeyFile /etc/pki/tls/private/www.server.com.key #密钥文件
 重启 httpd 服务
 在浏览器中输入 https://www.server.com 进行查看

具体执行如下:
安装完成后执行 keygen
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第28张图片
显示如下:
1. 您现在正在生成一个新的密钥对,它将用于加密所有SSL通信到名为www.server.com的服务器。您还可以创建一个证书请求并将其发送到证书颁发机构(CA)进行签名。
会生成 /etc/pki/tls/private/www.server.com.key 密钥文件
/etc/pki/tls/certs/www.server.com.crt 证书文件
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第29张图片
2. 这里用来选择密钥的大小,密钥大小不得小于1024 bit
512(不安全);
1024(低级的,速度快);
2048(中等安全,中等速度,推荐);
4096(高安全性,速度慢);
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第30张图片
3. 生成随机比特
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第31张图片
4. 为了从内核随机数生成器生成2048个随机位,在这个主机的控制台可能需要一些键盘或鼠标输入。如果在本地运行这个程序,请尝试输入一些随机文本或移动鼠标。
执行到此按上述要求操作
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第32张图片
5. 您是否愿意向证书颁发机构(CA)发送证书请求(CSR) ?这里点 no 这里是需要缴费申请的,我们仅用来学习不与要通过官方认证
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第33张图片
6. 在这个阶段,您可以在您的私钥上设置密码。如果您设置了密码,您将不得不在每次服务器启动时输入它。用于加密密钥的密码必须与相同服务器安装使用的所有密钥相同。如果您不加密密钥,那么如果有人闯入您的服务器并获取包含密钥的文件,他们将能够解密使用该密钥协商的所有通信。如果您的密钥是加密的,那么将会有更多的工作用于检索私钥。
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第34张图片
7. 您将被要求输入信息,这些信息将被制成您的服务器的自签名证书。您将要输入的是所谓的专有名称或DN。有相当多的领域,但你可以留下一些空白。
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第35张图片
证书密钥生成完毕,编辑 /etc/httpd/conf.d/ssl.conf 将密钥添加进去
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第36张图片
重启服务,在浏览器中输入 https://www.server.com
由于没有证书,连接不安全
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第37张图片
为其添加证书
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第38张图片
添加后查看域名信息
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第39张图片
可以访问 https://www.server.com
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第40张图片

apache 地址重写

 建立目录
 [root@apache-server ~]# mkdir /var/www/html/virtual/server.com/login/
 编辑 login.server.com 的配置文件
 vim /etc/httpd/conf.d/login.conf
 编辑如下
  1   #虚拟端口为 443
  2         ServerName login.server.com   #域名
  3         DocumentRoot "/var/www/virtual/server.com/login/"  #访问目录
  4         CustomLog "logs/login.log" combined       #用户日志
  5         SSLEngine on                              #SSL 开启
  6         SSLCertificateFile /etc/pki/tls/certs/www.server.com.crt
                                                      #证书文件
  7         SSLCertificateKeyFile /etc/pki/tls/private/www.server.com.key
                                                      #密钥文件
------------------------------------------------------------------------------------
 上述部分为与单 IP 多节点测试页面部署相同,及为此 IP 的另一虚拟主及域名进行配置,并添加证书认证
------------------------------------------------------------------------------------
  8 
  9 
 10         Require all granted
 11 
 12 
 13         ServerName login.server.com  #域名
 14         RewriteEngine on             #重写开启
 15         RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
                                         #重写规则
 16 
-------------------------------------------------------------------------------------
 上述表示允许访问 login.server.com 并规定输入 https:// 后自动重写为 https://
-------------------------------------------------------------------------------------
其中^(/.*)$ 客户主机在浏览器写入的字符。%{HTTP_HOST}$1 客户主机在浏览器里面写入的内容去掉http:以外的内容。[redirect=301] 表示临时转换,只有在访问的时侯转换。
编辑完毕,重启服务

具体执行如下:
编辑配置文件
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第41张图片
在浏览器中执行 http://login.server.com 自动改写成: https://login.server.com
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第42张图片
在进行证书添加后就可以访问 login.server.com
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第43张图片

4. apache 支持的语言

Apache 默认支持的语言是 html 对于 cgi 是支持,但是需要进行配置。对于php 不支持需要进行插件安装
html :超文本标记语言,标准通用标记语言下的一个应用(apache 默认支持的语言)
php:超文本预处理器,是一种通用开源脚本语言(apache 默认不支持,需要进行安装)
CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。几乎所有服务器都支持CGI,可用任何语言编写CGI。

 php 安装PHP
 [root@apache-server ~]# yum install php -y
 安装成功,编辑主配置发文件,修改默认发布文件为 index.php
 [root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
 179 
 180     DirectoryIndex index.php  #设置默认发布文件为 index.php
 181 
 编辑发布文件内容:
 [root@apache-server ~]# vim /var/www/html/index.php
 编辑如下:
  1 2         phpinfo();
  3 ?>
~                
 重启服务,在浏览器中验证

执行如下:
修改默认发布文件
这里写图片描述
编辑发布文件内容
这里写图片描述
在浏览器中查看
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第44张图片

cgi 类型

 建立 cgi 文件的目录
 [root@apache-server ~]# vim /var/www/html/index.phpi
 编辑 cgi 类型的文件
 [root@apache-server ~]# vim /var/www/html/cgi/index.cgi
 内容如下:
  1 #!/usr/bin/perl
  2 print "Content-type: text/html\n\n";
  3 print `date`;
 ~                   
 [root@apache-server ~]# chmod +x /var/www/html/cgi/index.cgi
 让cgi文件可执行
 编辑配置文件,让cgi 类型文件可以被显示:
 [root@apache-server ~]# vim /etc/httpd/conf.d/default.conf 
 内容如下:
  1 _default_:80>
  2         DocumentRoot /var/www/html
  3         CustomLog "logs/default.log" combined
  4 
  5 "/var/www/html/cgi">
  6         Options +ExecCGI            #让 cgi 类型可执行
  7         AddHandler cgi-script .cgi  #添加可识别类型.cgi 类型的可以被识别
  8         DirectoryIndex index.cgi    #默认发布文件为 index.cgi
  9 
~                     
 重启服务:
 systemctl restart httpd.service 
 在浏览器中进行验证

执行如下:
编辑配置文件:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第45张图片
编辑发布文件内容:
这里写图片描述
浏览器中查看:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第46张图片

5. Squid 代理

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

5.1 squid 的正向代理

若主机 A 可以上网,另一台主机 B 想上网,可以通过 squid 进行代理对主机 B 实现上网。
操作如下:

 在可上网的主机 A 中安装squid
 [root@foundation151 ~]# yum install squid.x86_64 -y
 编辑配置文件(/etc/squid/squid.conf)
 [root@foundation151 ~]# vim /etc/squid/squid.conf
  55 # And finally deny all other access to this proxy
  56 http_access allow all     #允许http通过3128端口访问
  57 
  58 # Squid normally listens to port 3128
  59 http_port 3128
 ........(我是用来省略的)........
  66 coredump_dir /var/spool/squid   #缓存文件存放目录
 启动服务
 systemctl start squid

 在不可以上网的主机 B ,浏览器中进行操作

执行如下:
主机 A 中(可上网)
编辑配置文件:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第47张图片
主机 B 中(不可上网)
在浏览器中编辑:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第48张图片
选择高级设置
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第49张图片
选择固定代理配置,输入可上网主机 IP 并输入端口号
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第50张图片
检索百度,可以上网
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第51张图片

5.2 squid 的反向代理

用三个主机进行测试
一个为apache服务器
一个为squid 服务器(不需要 httpd 服务)
一个为客户端

 在squid端安装squid服务
 [root@squid-server ~]# yum install squid.x86_64 -y
 编辑配置文件
 [root@squid-server ~]# vim /etc/squid/squid.conf
 内容如下
 ........(我是用来省略的)........
 # And finally deny all other access to this proxy
 56 http_access allow all    #允许任何用户访问此代理点
 57 
 58 # Squid normally listens to port 3128
 59 http_port 80 vhost vport   #通过80端口进行访问 支持虚拟主机,虚拟端口
 60 cache_peer 172.25.151.150 parent  80  0  proxy-only 
        #                                      仅作为代理
 61 
 62 # Uncomment and adjust the following to add a disk cache directory.
 63 cache_dir ufs /var/spool/squid 100 16 256
 64 
 65 # Leave coredumps in the first cache dir
 66 coredump_dir /var/spool/squid   #缓存文件存放目录

 启动服务
 [root@squid-server ~]# systemctl start squid
 在apache主机中编辑默认访问文件
 [root@apache-server mnt]# vim /var/www/html/index.html
 将内容设置为apache主机ip
 关闭三个主机的防火墙
 在服务端测试
 服务端浏览器中检索 squid ip 显示的默认发布文件为apache的内容即验证成功

执行如下:
在 suqid 服务器端编辑配置文件:
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第52张图片
启动服务后,在apache 服务端编辑默认发布文件
这里写图片描述
在客户端浏览器中访问 squid 服务器 IP
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第53张图片
访问 apache 服务端 IP
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第54张图片
以上两者相同,反向代理成功

6. 简单论坛部署

通过 apahce 服务 mysql 数据库服务进行简单的论坛搭建

先获取论坛模版:Discuz_X3.2_SC_UTF8.zip
将论坛模版移动到 /var/www/html/ 再对其进行解压
修改 /var/www/html/ 及其子目录权限为 777 让论坛对其可写可执行
配置好数据库
再浏览器中输入本机ip/upload
进行安装

数据库相关配置请移步Linux 下的 MariaDB 数据库管理系统

执行如下:
在浏览器输入 IP/upload/进行论坛安装
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第55张图片
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第56张图片
运行环境设置
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第57张图片
数据库创建
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第58张图片
安装成功进行访问
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第59张图片
管理员登录
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第60张图片
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第61张图片
登录成功,对论坛进行管理
Linux菜鸟成长日记 ( Linux 下 Apache 服务程序的部署 )_第62张图片

你可能感兴趣的:(linux,系统服务管理)