apache linux 部署

2018-05-31 18:08:26 Buster_ZR 阅读数 2207

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 行管理其默认端口
这里写图片描述
在浏览器中查看
这里写图片描述
第一句话说明:该页面用于测试 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 <IfModule dir_module>
 164     DirectoryIndex index.html  #默认发布文件为 index.html
 165 </IfModule>
 在 /var/www/html/ 编辑 index.html 文件,在浏览器中查看效果

执行如下:
主配置文件 /etc/httpd/conf/httpd.conf 关于默认发布文件的内容:
这里写图片描述
在 /var/www/html/ 编辑 index.html 文件,在浏览器中查看效果
编辑内容如下:
这里写图片描述
浏览器中查看效果:
这里写图片描述

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

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

执行如下:
修改配置文件设置默认访问文件为 test.html
这里写图片描述
在 /var/www/html/ 编辑 test.html
这里写图片描述
在浏览器中查看效果
这里写图片描述
原来的发布文件 /var/www/html/index.html 可以通过在浏览器中输入 “apache 服务器 IP/index.html”来查看
这里写图片描述

1.2.1 默认发布目录管理

修改默认发问目录:

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

执行如下:
创建目录,编辑配置文件并重启服务
这里写图片描述
编辑默认发布文件内容:
/test/html 默认发布文件 test.html 内容
这里写图片描述
/test/html/lin 默认发布文件 index.html 内容
这里写图片描述
配置文件内容如下:
这里写图片描述
在浏览器中查看
/test/html
这里写图片描述
/test/html/lin
这里写图片描述
由上可知,子目录的默认发布文件可以进行自行规定,若是不指定则是全局规定的默认发布文件

2. Apache 服务的访问限制

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

2.1 基于 IP 的访问限制

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

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

执行如下:
建立目录与文件
这里写图片描述
发布文件内容
这里写图片描述
禁止 IP 172.25.151.50 访问
这里写图片描述
在浏览器中查看
IP 为 172.25.151.250 的用户可以查看
这里写图片描述
IP 为 172.25.151.50 的用户,可以访问 /var/www/html 但不可访问被限制的目录 /var/www/html/test
这里写图片描述
这里写图片描述

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 <Directory "/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 </Directory>
 编辑完成重启服务,在浏览器中查看效果

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

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 添加多个域名作为节点,让本地浏览器可以识别以上域名

执行如下:
这里写图片描述

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

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

vim default.conf    编辑默认配置文件
内容如下:
  1 <VirtualHost _default_:80>  #虚拟访问的默认端口为80
  2         DocumentRoot /var/www/html   #默认目录为/var/www/html
  3         CustomLog "logs/default.log" combined   #用户日志
  4 </VirtualHost>
===========================================================================================
 为各个节点建立对应的目录
 [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 <VirtualHost *: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 </VirtualHost>
  6 <Directory "/var/www/html/virtual/server.com/music/">
  7         Require all granted      #此目录允许任何人访问
  8 </Directory
 nba.server.com 的配置文件
 vim /etc/httpd/conf.d/nba.conf
 内容如下:
  1 <virtualHost *: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 </VirtualHost>
  6 <Directory "/var/www/html/virtual/server.com/nba/">
  7         Require all granted      #此目录允许任何人访问
  8 </Directory>

然后重启服务

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

编辑配置文件
/etc/httpd/conf.d/default.conf
这里写图片描述
/etc/httpd/conf.d/music.conf
这里写图片描述
/etc/httpd/conf.d/nba.conf
这里写图片描述
在浏览器中进行查看
输入 www.server.com 访问 /var/www/html/
这里写图片描述
输入 nba.server.com 访问 /var/www/html/virtual/server.com/nba/
这里写图片描述
输入 music.server.com 访问 /var/www/html/virtual/server.com/music/
这里写图片描述

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

apache 地址重写

 建立目录
 [root@apache-server ~]# mkdir /var/www/html/virtual/server.com/login/
 编辑 login.server.com 的配置文件
 vim /etc/httpd/conf.d/login.conf
 编辑如下
  1 <VirtualHost *:443>  #虚拟端口为 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 </VirtualHost>
  9 <Directory "/var/www/html/virtual/server/com/login/">
 10         Require all granted
 11 </Directory>
 12 <VirtualHost *80>
 13         ServerName login.server.com  #域名
 14         RewriteEngine on             #重写开启
 15         RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
                                         #重写规则
 16 </VirtualHost>
-------------------------------------------------------------------------------------
 上述表示允许访问 login.server.com 并规定输入 https:// 后自动重写为 https://
-------------------------------------------------------------------------------------
其中^(/.*)$ 客户主机在浏览器写入的字符。%{HTTP_HOST}$1 客户主机在浏览器里面写入的内容去掉http:以外的内容。[redirect=301] 表示临时转换,只有在访问的时侯转换。
编辑完毕,重启服务

具体执行如下:
编辑配置文件
这里写图片描述
在浏览器中执行 http://login.server.com 自动改写成: https://login.server.com
这里写图片描述
在进行证书添加后就可以访问 login.server.com
这里写图片描述

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 <IfModule dir_module>
 180     DirectoryIndex index.php  #设置默认发布文件为 index.php
 181 </IfModule>
 编辑发布文件内容:
 [root@apache-server ~]# vim /var/www/html/index.php
 编辑如下:
  1 <?php
  2         phpinfo();
  3 ?>
~                
 重启服务,在浏览器中验证

执行如下:
修改默认发布文件
这里写图片描述
编辑发布文件内容
这里写图片描述
在浏览器中查看
这里写图片描述

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 <VirtualHost _default_:80>
  2         DocumentRoot /var/www/html
  3         CustomLog "logs/default.log" combined
  4 </VirtualHost>
  5 <Directory "/var/www/html/cgi">
  6         Options +ExecCGI            #让 cgi 类型可执行
  7         AddHandler cgi-script .cgi  #添加可识别类型.cgi 类型的可以被识别
  8         DirectoryIndex index.cgi    #默认发布文件为 index.cgi
  9 </Directory>
~                     
 重启服务:
 systemctl restart httpd.service 
 在浏览器中进行验证

执行如下:
编辑配置文件:
这里写图片描述
编辑发布文件内容:
这里写图片描述
浏览器中查看:
这里写图片描述

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 中(可上网)
编辑配置文件:
这里写图片描述
主机 B 中(不可上网)
在浏览器中编辑:
这里写图片描述
选择高级设置
这里写图片描述
选择固定代理配置,输入可上网主机 IP 并输入端口号
这里写图片描述
检索百度,可以上网
这里写图片描述

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 服务器端编辑配置文件:
这里写图片描述
启动服务后,在apache 服务端编辑默认发布文件
这里写图片描述
在客户端浏览器中访问 squid 服务器 IP
这里写图片描述
访问 apache 服务端 IP
这里写图片描述
以上两者相同,反向代理成功

6. 简单论坛部署

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

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

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

执行如下:
在浏览器输入 IP/upload/进行论坛安装
这里写图片描述
这里写图片描述
运行环境设置
这里写图片描述
数据库创建
这里写图片描述
安装成功进行访问
这里写图片描述
管理员登录
这里写图片描述
这里写图片描述
登录成功,对论坛进行管理
这里写图片描述

2018-09-19 11:42:59 qq_36119192 阅读数 15376

目录

Apache服务的安装

yum源安装:

目录文件

源码包安装:

目录文件:

Apache中添加对php的支持

Apache中添加php对mysql数据库的支持

Apache服务的高级配置

1:配置基于ip的虚拟主机

2. 配置基于端口的虚拟主机

3.配置基于域名的虚拟主机

HTTP服务的访问控制

基于ip的用户访问控制的配置:

基于用户身份认证授权的配置:


Apache 是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解析器编译到服务器中。但是Apache有一个缺点就是,重新加载配置文件时需要重启 httpd 服务,而nginx重载配置文件时只需重载reload配置文件即可。httpd服务默认监听 tcp / 80 端口

apache有两个日志文件,access.log记录了访问网站的日志;error.log记录了错误日志

Apache服务的安装

yum源安装:

  1. 安装httpd主程序:  yum  -y  install  httpd
  2. 在/var/www/html 目录下写入我们自己的主页 index.html
  3. 开启httpd程序: systemctl  start httpd
  4. 防火墙开放http服务  firewall-cmd  --add-service=http ,关闭SElinux: setenforce=0
  5. 查看apache版本号:httpd -v

目录文件

  • 程序目录:/usr/sbin/httpd
  • 默认网站主页存放目录: /var/www/html/
  • 日志文件存放目录:/var/log/httpd/
  • 主配置文件:/etc/httpd/conf/httpd.conf
  • 从配置文件:/etc/httpd/conf.d/

主配置文件 /etc/httpd/conf/httpd.conf 的一些参数的意义

ServerRoot “/etc/httpd“                        //服务配置文件目录
PidFile run/httpd.pid		                   //PID文件
Listen 80			                           //默认监听端口
Include conf.modules.d/*.conf		           //包含模块目录的配置文件
User apache			                           //启动用户
Group apache		        	               //启动组
ServerAdmin root@localhost	                   //管理员邮箱
ServerName www.example.com:80	               //域名主机名
DocumentRoot “/var/www/html“	               //默认主页存放目录
DirectoryIndex index.html index.html.var	   //索引文件
<Directory "/var/www">                         //规定网站根目录的位置
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
ErrorLog logs/error_log			               //错误日志
CustomLog logs/access_log combined	           //访问日志
AddDefaultCharset UTF-8                        //默认字符集
IncludeOptional conf.d/*.conf                  //包含了 conf.d/*.conf 的配置文件

<IfModule dir_module>
    DirectoryIndex index.html                  //默认索引
</IfModule>

 扩展配置文件: /etc/httpd/conf.d/   , 我们可以在这个目录下新建一些我们自己定义的配置文件,比如基于ip的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机等等

源码包安装:

  1. 源码安装之前先安装编译工具: yum  -y  install  gcc  gcc-c++  make 
  2. 源码包: httpd-xxxx.tar.bz2
  3. 解压,然后进入解压目录, ./configure 编译, make && make install  安装即可 
  4. 进入安装目录的 bin 目录下, ./httpd 启动

目录文件:

安装完成后,软件默认安装在  /usr/loca/apache2/  下面,也可以编译的时候自定义安装目录

  • 可执行文件目录:/usr/local/apache2/bin/
  • 网站主页目录:/usr/local/apache2/htdocs/
  • 配置文件目录:/usr/local/apache2/conf/
  • 日志文件目录:/usr/local/apache2/logs/

Apache中添加对php的支持

安装php的支持包    yum  -y  install   php ,然后重启 httpd 服务即可

如果想让Apache识别默认的index.php文件,需要修改配置文件 /etc/httpd/conf/httpd.conf 中,在如下位置加入 index.php  

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

Apache中添加php对mysql数据库的支持

安装php-mysql的包即可:yum  -y  install php-mysql  

Apache服务的高级配置

以下不管是基于ip、端口还是基于域名创建的虚拟主机,网站主页目录只能在 /var/www/ 下,如果想更改到其他的任意目录的话,需要修改配置文件  /etc/httpd/conf/httpd.conf

<Directory "/var/www">        //这里的目录更改为你的网站主页目录
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

1:配置基于ip的虚拟主机


可以在一台服务器上配置多个网卡,也可以在一块网卡上配置爱多个ip
我这里在一块网上上配置多个ip:   ifconfig  eno16777736:1   10.96.10.204

然后在从配置文件中  /etc/httpd/conf.d/   下创建一个配置文件,我们新建一个 ip.conf 文件,然后加入下面几行

<VirtualHost 10.96.10.203>
        DocumentRoot /var/www/html/web1     //第一个ip的网站的主页面目录
</VirtualHost>
<VirtualHost 10.96.10.204>
        DocumentRoot /var/www/html/web2    //第二个ip的网站的主页面目录
</VirtualHost>

然后在/var/www 下新建 web1和web2目录,在web1和web2目录里面分别放入我们的网站页面。然后重启httpd服务即可。

2. 配置基于端口的虚拟主机

在配置文件中  /etc/httpd/conf.d/   下创建一个配置文件,我们新建一个 port.conf 文件,然后加入下面几行

Listen 8080
<VirtualHost *:80>
        DocumentRoot  /var/www/html/web1      //第一个端口的网站主目录
</VirtualHost>
<VirtualHost *:8080>
        DocumentRoot  /var/www/html/web2      //第二个端口的网站主目录
</VirtualHost>

然后在/var/www 下新建 web1和web2目录,在web1和web2目录里面分别放入我们的网站页面。然后重启httpd服务即可。

3.配置基于域名的虚拟主机

在配置文件中  /etc/httpd/conf.d/   下创建一个配置文件,我们新建一个 domain.conf 文件,然后加入下面几行

NameVirtualHost *:80
<VirtualHost *:80>
        DocumentRoot /var/www/web1     //第一个域名的网站主目录
        ServerName web1.xie.com
</VirtualHost>
<VirtualHost *:80>
        DocumentRoot /var/www/web2    //第二个域名的网站主目录
        ServerName web2.xie.com
</VirtualHost>

然后在/var/www 下新建 web1和web2目录,在里面放入我们的网站页面。然后再重启httpd服务即可。

HTTP服务的访问控制

控制对特定主页内容的访问,为相应网站目录添加访问控制
常用访问控制方式分类:

  • 客户机地址限制
  • 用户授权限制

设置客户机地址访问

  • Order配置项,定义控制顺序 Order allow,deny 先允许后拒绝,默认拒绝 Order deny,allow 先拒绝后允许,默认允许
  • Allow、Deny配置项,设置允许或拒绝的网段或地址 Deny from IP地址 或者 网段 Allow from IP地址 或者 网段

基于ip的用户访问控制的配置:

在配置文件中  /etc/httpd/conf.d/   下创建一个配置文件,我们新建一个 ip.conf 文件,然后加入下面几行

// 这个的意思的允许所有用户访问/var/www/html 目录下的网页,但是只允许 10.96.10.204/24这个网段的访问 /var/www/html/test/ 目录下的网页
<VirtualHost 10.96.10.203>        //本机ip
DocumentRoot /var/www/html        //网站主页的目录
<Directory /var/www/html/test>         //要设置限制的目录
Order allow,deny                  //匹配了允许的就拒绝所有
Allow from 10.96.10.204/24        //只允许10.96.10.204这个地址访问
</Directory>
</VirtualHost>

基于用户身份认证授权的配置:

访问控制的配置

  • 在配置文件中  /etc/httpd/conf.d/   下创建一个配置文件,我们新建一个auth.conf 文件,然后加入下面几行
  • htpasswd  -c   /etc/httpd/webpasswd    tom (第一次加 -c 参数,表示创建文件);   htpasswd  /etc/httpd/webpasswd  jack(第二次不用加 -c参数 ,因为文件已经创建)
  • 重启服务验证
<VirtualHost 10.96.10.203>           //本机ip 
DocumentRoot /var/www/html           //主页目录
<Directory /var/www/html/test>       //设置认证的目录
AuthType Basic                       //认证的方法:密码
AuthName Password!                   //弹出登录框
AuthUserFile /etc/httpd/webpasswd   //用户名和密码保存的文件
require user tom  jack              //只允许 tom 和 jack 用户访问
</Directory>
</VirtualHost>        

相关文章: Linux中Nginx服务器的部署和配置

                   Linux中Tomcat和Jboss的安装和部署

                   LAMP环境搭建一个Discuz论坛

2018-12-05 22:20:31 weixin_43287982 阅读数 1259

在介绍Apache服务之前,先了解一下Web网络服务和其他两个服务。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

配置文件

在这里插入图片描述

/etc/httpd/conf/httpd.conf 参数

在这里插入图片描述

在这里插入图片描述

部署Apache服务

[root@apache-server ~]# yum install httpd.x86_64 httpd-manual -y	安装服务
[root@apache-server ~]# systemctl start httpd	启动服务
[root@apache-server ~]# systemctl enable httpd.service	开机自启

[root@apache-server ~]# firewall-config	将服务加入防火墙策略,图形界面方法

[root@apache-server ~]# firewall-cmd --permanent --add-service=http	命令方法
[root@apache-server ~]# firewall-cmd --permanent --add-service=https
[root@apache-server ~]# firewall-cmd --reload

[root@apache-server ~]# systemctl restart httpd.service	重启服务,使设置生效

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

修改默认端口

[root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
 43 Listen 8080

[root@apache-server ~]# systemctl restart httpd.service	selinux处于强制状态


[root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
 44 Listen 6666

[root@apache-server ~]# setenforce 0
[root@apache-server ~]# systemctl restart httpd.service	selinux处于警告状态,
selinux处于强制状态启动服务会失败,因为apache服务默认不支持6666端口

[root@apache-server ~]# semanage port -l | grep http	查看支持的端口

[root@apache-server ~]# firewall-config	防火墙图形界面允许端口

[root@apache-server ~]# semanage port -a -t http_port_t -p tcp 6666	打开6666端口
-a  添加  -t  类型  -p 端口 

[root@apache-server ~]# systemctl restart httpd.service

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

修改默认发布文件

[root@apache-server ~]# cd /var/www/html/
[root@apache-server html]# ls
[root@apache-server html]# vim index.html
  1 <h1>index's page</h1>

[root@apache-server html]# vim westos.html
  1 <h1>westos's page</h1>
第一个文件为Apache服务默认的发布文件,第二个是我们编写的文件
[root@apache-server html]# systemctl restart httpd.service 
[root@apache-server html]# vim /etc/httpd/conf/httpd.conf 
164     DirectoryIndex westos.html index.html	哪个文件在前面就默认是哪个

[root@apache-server html]# systemctl restart httpd.service

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上面的图片,是在重启服务前的,下面的是在改了默认发布文件后重启服务所看到的

在这里插入图片描述

修改默认发布目录

[root@apache-server html]# getenforce 
[root@apache-server html]# mkdir -p /huawei/www/html
[root@apache-server html]# vim /huawei/www/html/index.html
  1 <h1>huawei's page</h1>

[root@apache-server html]# vim /etc/httpd/conf/httpd.conf 
119 #DocumentRoot "/var/www/html"	注释掉默认的路径
120 DocumentRoot "/huawei/www/html"	写上自己指定的路径
121 <Directory "/huawei/www/html">
122         Require all grented
123 </Directory>

[root@apache-server html]# semanage fcontext -a -t httpd_sys_content_t '/huawei(/.*)?'
[root@apache-server html]# restorecon -RvvF /huawei/
[root@apache-server html]# ls -Z /huawei/www/html/
[root@apache-server html]# systemctl restart httpd.service

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

日志查看、排错
[root@apache-server html]# cat /etc/httpd/logs/error_log
[root@apache-server html]# cat /var/log/messages
恢复实验环境
[root@apache-server ~]# rm -rf /etc/httpd/conf/httpd.conf 
[root@apache-server ~]# yum reinstall httpd.x86_64 -y
[root@apache-server ~]# systemctl restart httpd.service

虚拟主机功能

[root@apache-server ~]# mkdir -p /var/www/westos.com/news/html
[root@apache-server ~]# mkdir -p /var/www/westos.com/music/html
[root@apache-server ~]# vim /var/www/westos.com/news/html/index.html
  1 <h1>news's page</h1>

[root@apache-server ~]# vim /var/www/westos.com/music/html/index.html
  1 <h1>music's page</h1>

[root@apache-server ~]# vim /etc/httpd/conf.d/a_default.conf
  1 <VirtualHost _default_:80>
  2         DocumentRoot /var/www/html
  3         CustomLog logs/default.log combined
 			 logs = /etc/httpd/log	combined 所有类型的日志
  4 </VirtualHost>

[root@apache-server ~]# vim /etc/httpd/conf.d/news.conf
  1 <VirtualHost *:80>
  2         ServerName news.westos.com
  3         DocumentRoot /var/www/westos.com/news/html
  4         CustomLog logs/news.log combined
  5 </VirtualHost>
  6 <Directory "/var/www/westos.com/news/html">
  7         Require all granted
  8 </Directory>

[root@apache-server ~]# cp /etc/httpd/conf.d/news.conf /etc/httpd/conf.d/music.conf
[root@apache-server ~]# vim /etc/httpd/conf.d/music.conf
:%s/news/music/g	批量修改

  1 <VirtualHost *:80>
  2         ServerName music.westos.com
  3         DocumentRoot /var/www/westos.com/music/html
  4         CustomLog logs/music.log combined
  5 </VirtualHost>
  6 <Directory "/var/www/westos.com/music/html">
  7         Require all granted
  8 </Directory>
[root@apache-server ~]# systemctl restart httpd.service 

在客户端本地域名解析
[root@foundation60 Desktop]# vim /etc/hosts	使用超级用户编辑,权限限制
172.25.254.160  www.westos.com news.westos.com music.westos.com

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

下面三张图依次是默认主机、news主机、music主机。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试机做域名解析

在这里插入图片描述

在这里插入图片描述

测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

访问控制

基于IP进行访问控制

[root@apache-server ~]# vim /etc/httpd/conf.d/a_default.conf 

  1 <VirtualHost _default_:80>
  2         DocumentRoot /var/www/html
  3         CustomLog logs/default.log combined
  4 </VirtualHost>
  5 <Directory "/var/www/html">
  6          Order Allow,Deny	这里的Allow和Deny有先后顺序,后面的会覆盖掉前面的
  7          Allow from all
  8          Deny from 172.25.254.60
  9 </Directory>
 
[root@apache-server ~]# systemctl restart httpd.service 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

基于帐号-密码进行访问控制

[root@apache-server ~]# htpasswd -cm http_userlist admin
[root@apache-server ~]# htpasswd -m http_userlist admin1

[root@apache-server ~]# vim /etc/httpd/conf.d/a_default.conf 

 10 <Directory "/var/www/html">
 11         AuthUserFile /etc/httpd/conf.d/http_userlist
 12         AuthName "Please input username and password !!!"
 13         AuthType basic
 14 #       Require user admim
 15         Require valid-user
 16 </Directory>

[root@apache-server ~]# systemctl restart httpd.service

在这里插入图片描述

在这里插入图片描述

2018-05-30 17:33:51 qq_38622229 阅读数 1074

http 软件提供超文本传输协议
apache 同步阻塞模式 稳定(用于认证)
ndinx 异步非阻塞模式 高效(用于浏览)

apache服务:
http服务的默认端口为80
http中的默认文件为index.html;浏览器中http后的’/’=/var/www/html;ftp后的’/’=/var/ftp

准备环境:
yum install httpd
systemctl start httpd
systemctl stop firewall
1.http服务基本配置的修改:
(1)服务端口修改:

      vim /etc/httpd/conf/httpd.conf
         listen 8080

这里写图片描述

      systemctl restart httpd
   验证:浏览器172.25.254.107:80   访问失败
               172.25.254.107:8080 访问成功

这里写图片描述
这里写图片描述
(2)默认路径的修改

      mkdir /westos/html -p
      vim /westos/html/index.html
        文件中写入redhat
      vim /etc/httpd/conf/httpd.conf
        注释DocumentRoot "/var/www/html"
        DocumentRoot "/westos/html"
    <Directory "/westos">
            require all granted
    </Directory>

这里写图片描述

    验证:浏览器:172.25.254.107
              显示redhat

这里写图片描述
(3)默认发布文件修改:

      vim /westos/html/test.html
          文件中写入westos
      vim /etc/httpd/conf/httpd.conf
        DocumentRoot "/westos/html"
    <Directory "/westos">
            require all granted
                DirectoryIndex test.html
    </Directory>

这里写图片描述

     验证:浏览器:172.25.254.107
            显示westos

这里写图片描述
(4)设置目录下的默认发布文件

      mkdir /westos/html/linux
      vim /westos/html/linux/index.html
          写入index's page
      vim /westos/html/linux/test.html
          写入test's page
      验证:浏览器:172.25.254.107/linux
                 显示test's page

这里写图片描述

      vim /etc/httpd/conf/httpd.conf
          <Directory "/westos/html/linux">
                    DirecoryIndex index.html
         </Directore>

这里写图片描述
验证:浏览器:172.25.254.107/linux
显示index’s page
这里写图片描述
2. http服务的登陆限制:
1.ip访问方式

       vim /etc/httpd/conf/httpd.conf(白名单)
        <Directory "var/www/html/westos">
        Order Deny,Allow      Deny和allow是有顺序的,谁在前,谁将会被首先读取后读取的会覆盖前面的内容
        Allow from 172.25.254.7
        Deny from All
    </Directory>

这里写图片描述

       systemctl restart httpd
       验证:172.25.254.7浏览器172.25.254.107/westos:可以访问
             其他主机浏览器172.25.254.107/westos:    访问失败

这里写图片描述

       vim /etc/httpd/conf/httpd.conf (黑名单)
        <Directory "var/www/html/westos">
        Order Allow,Deny
        Allow from All
        Deny from 172.25.254.7
    </Directory>

这里写图片描述

       systemctl restart httpd
       验证:172.25.254.7浏览器172.25.254.107/westos:访问失败
             其他主机浏览器172.25.254.107/westos:    访问成功

这里写图片描述
2.用户访问方式

    cd /etc/httpd/
    htpasswd -cm apacheuser admin(若apacheuser目录存在,则不需要加-c)
    htpasswd -cm apacheuser lee

这里写图片描述
编辑配置文件并验证:

    vim /etc/httpd/conf/httpd.conf
      注释ip访问方式
      <Directory "/var/www/html/westos">
        AuthUserFile /etc/httpd/apacheuser
        AuthName  "Please input user and password!!!"
        AuthType basic
    #   Require user admin(指定用户访问)
        Require valid-user(apacheuser中的所有用户都可以访问)
    </Directory>
    systemctl restart httpd
    验证:浏览器172.25.254.107/westos (需要用户密码登陆)  

这里写图片描述
这里写图片描述
3.apche的虚拟主机:

    vim /var/www/html/index.html
        写入default's page
    mkdir /var/virtual/westos.com/news/ -p
    mkdir /var/virtual/westos.com/music/ -p
    vim /var/virtual/westos.com/news/index.html
        写入new's page
    vim /var/virtual/westos.com/music/index.html
        写入music's page
    书写各自的配置文件:
    vim /etc/httpd/conf.d/default.conf
        <VirtualHost>
            DocumentRoot /var/www/html
            CustomLog "logs/default.log" combined
        </VirtualHost>
    vim /etc/httpd/conf.d/news.conf
        <VirtualHost *:80>
            ServerName news.westos.com
            DocumentRoot "/var/www/virtual/westos.com/news"
            CustomLog "logs/news.log" combined
        </VirtualHost>
    vim /etc/httpd/conf.d/music.conf
        <VirtualHost *:80>
            ServerName music.westos.com
            DocumentRoot "/var/www/virtual/westos.com/music"
            CustomLog "logs/music.log" combined
        </VirtualHost>
    systemctl restart httpd
    用浏览器访问的主机:
    vim /etc/hosts
        172.25.254.107 www.westos.com news.westos.com music.westos.com login.westos.com   域名解析

验证:浏览器 www.westos.com 显示default’s page
这里写图片描述
news.westos.com 显示new’s page
这里写图片描述
music.westos.com 显示music’s page
这里写图片描述
4.https证书和钥匙的生成(https的端口为443)

    yum install mod_ssl crypto-utils -y
    genkey www.westos.com
        next-->1024 next-->no-->不选 next-->看截图

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

    vim /etc/httpd/conf.d/ssl.conf
        更改证书和钥匙

这里写图片描述
验证:浏览器 https://www.westos.com下载可以看到(清缓存、删记录)
这里写图片描述
这里写图片描述
这里写图片描述
5.http–>https的转换

    vim /etc/httpd/conf.d/login.conf
    <VirtualHost *:443>
            Servername login.westos.com
            DocumentRoot "/var/www/virtual/westos.com/login"
            CustomLog "logs/music.log" combined
            SSLEngine on
            SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
            SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
    </virtualHost>
    <Directory "/var/www/virtual/westos.com/login">
            Require all granted
    </Directory>
    <VirtualHost *:80>
            ServerName login.westos.com
            RewriteEngine on
            RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
    </VirtualHost>

这里写图片描述

    mkdir /var/www/virtual/westos.com/login -p
    vim /var/www/virtual/westos.com/login/index.html
        写入login's page

验证:浏览器 login.westos.com 输入域名时默认为http:// 自动转换为https:// 有锁
这里写图片描述
这里写图片描述
这里写图片描述

6.网页测试:
php的网页测试:

    yum install php -y
    vim /etc/httpd/conf/httpd.conf
        <IfModule dir_module>
            DirectoryIndex index.php index.html
        </IfModule>

这里写图片描述

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

这里写图片描述

    systemctl restart httpd
    验证:浏览器 172.25.254.107

这里写图片描述
cgi文件的执行:

    vim /var/www/html/cgi/index.cgi
        #!/usr/bin/perl
        print "Content-type: text/html\n\n";
        print `date`;

这里写图片描述

    vim /etc/httpd/conf.d/default.conf
        <Directory "/var/www/html/cgi"
            Options +ExecCGI
            AddHandler cgi-script .cgi
            DirectoryIndex index.cgi
        </Directory>

这里写图片描述

    chmod +x /var/www/html/cgi/index.cgi   给文件加执行权限

验证:浏览器172.25.254.107/cgi/index.cgi 输出时间
这里写图片描述
7.论坛的搭建:

    cd /var/www/html/
    下载论坛的安装压缩包
    get D*
    chmod 777 upload -R
    systemctl restart httpd

这里写图片描述
这里写图片描述
验证:浏览器 172.25.254.107/upload 显示论坛安装登陆
这里写图片描述
这里写图片描述

    yum install php-mysql

刷新网页
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
8.正向代理:
保证一台主机可以上网
可以上网的主机:

        yum install squid
        vim /etc/squid/squid.conf
            http_access allow all
            cache_dir ufs /var/spool/squid 100 16 256
        systemctl start squid

这里写图片描述
不能上网的主机:
浏览器–>preference–>advanced–>network–>settings–>manual proxy configuration–>http proxy 能上网的主机ip port 3128–>ok
这里写图片描述
这里写图片描述
这里写图片描述
验证:www.baidu.com 可以上网
这里写图片描述

9.反向代理:
desktop虚拟机: 安装apache服务,充当代理主机
server虚拟机: yum install squid -y 安装squid服务

    vim /etc/squid/squid.conf
        httpd_access allow all
        http_port 80 vhost vport
        cache_peer 172.25.254.107 parent 80 0 proxy-only
        cache_dir ufs /var/spool/squid 100 16 256

这里写图片描述

    systemctl stop firewalld

验证:浏览器 172.25.254.207 输出107的内容
这里写图片描述

2016-04-20 17:34:48 Alvin__Yang 阅读数 742

在linux apache 上部署 django 网站

(这么难用的编辑器)

1.安装配置apache

1.    1网络上有很多相关内容,不再写了

2.测试的时候记得开启防火墙端口:

1)     /sbin/iptables -I INPUT -p tcp --dport 80-j ACCEPT

2)     linux下的开启防火墙80端口命令。

3)     使用的是root账户去操作,documentroot 设置在了root目录下,一直出现permissiondeny。

4)     改了就好了。因为~apache的群组是apache ,是没有权限操作root目录的。

5)     (这么难用的编辑器!!!!!)