Apache配置

74 篇文章 0 订阅
68 篇文章 0 订阅

1. Apache简介

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开源web服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python/PHP等解释器编译到服务器中
Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。
Apache本来只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。

2. Apacheweb服务器特性:

1.支持最新的HTTP/1.1通信协议

2.拥有简单而强有力的基于文件的配置过程

3.支持通用网关接口 

4.支持基于IP和基于域名的虚拟主机 

5.支持多种方式的HTTP认证 

6.集成Perl处理模块 

7.集成代理服务器模块 

8.支持实时监视服务器状态和定制服务器日志 

9.支持服务器端包含指令(SSI) 

10.支持安全Socket层(SSL) 

11.提供用户会话过程的跟踪 

12.支持FastCGI 

3. Apache安装(rhel7.2下yum源安装)

1. 搜索Apache软件

这里写图片描述

2. yum安装

[root@localhost Desktop]# yum install httpd -y

3. 开启服务

[root@localhost Desktop]# systemctl start httpd

服务端口查看:
这里写图片描述

4. 本地测试
这里写图片描述

5.外部主机访问设置:

#首先配置防火墙策略,允许http外部访问
    [root@localhost Desktop]# firewall-cmd --permanent --add-service=http
    success
    #然后重载防火墙配置
    [root@localhost Desktop]# firewall-cmd --reload
    success
    #重启服务,即可在任意可达主机中进行访问
    [root@localhost Desktop]# systemctl restart httpd.service

测试:在任意可达主机浏览器中输入服务所在主机的ip进行访问,页面效果和本地相同即为成功。
6.制作自己的默认访问页:
在默认网站发布目录下新建文件,并写入简单的语句:

[root@localhost Desktop]# vim /var/www/html/index.html
[root@localhost Desktop]## cat /var/www/html/index.html
<h1 style="font-size:6em;color:olive">Halo the World!</h1>

浏览器中访问测试:
这里写图片描述

4. Apache配置

Apache主配置文件:

/etc/httpd/conf/httpd.conf

常用配置解读:

    ServerRoot "/etc/httpd" 用于指定Apache的运行目录
    Listen 80 监听端口
    User apache 运行apache程序的用户和组
    Group apache
    ServerAdmin root@localhost 管理员邮箱
    DocumentRoot "/var/www/html" 网页文件的存放目录
    <Directory "/var/www/html"> <Directory>语句块自定义目录权限
    Require all granted
    </Directory>
    ErrorLog "logs/error_log" 错误日志存放位置
    AddDefaultCharset UTF-8 默认支持的语言
    IncludeOptional conf.d/*.conf 加载其它配置文件
    DirectoryIndexindex.html 默认主页名称

1.更改服务端口
vim /etc/httpd/conf/httpd.conf
#找到以下行,修改80为你喜欢的端口号(例如8080)

#Listen 12.34.56.78:80
Listen 80
执行端口查询:

这里写图片描述
2.更改网站的默认发布目录:

vim /etc/httpd/conf/httpd.conf

这里写图片描述

修改上图中圈出的部分为:
注意:/var/lockey/html为你要指定的网站根目录,要记得使用命令去创建:mkdir /var/lockey/html -p

#DocumentRoot "/var/www/html"

DocumentRoot "/var/lockey/html"

#
# Relax access to content within /var/www.
#
<Directory "/var/lockey/html">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

# Further relax access to the default document root:

重启服务你发现访问不了或者访问到的是默认页,那么学习的机会来了!!!
首先清空日志信息:

>/var/log/messages

再次访问,然后查看日志信息,一般会有以下提示:cat /var/log/messages
这里写图片描述

分析:SELinux强制访问控制的问题
查看一下标签,发现问题所在

[root@localhost lockey]#ls -lZd /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
[root@localhost lockey]#ls -lZd /var/lockey/html/
drwxr-xr-x. root root unconfined_u:object_r:var_t:s0   /var/lockey/html/

根据日志里的提示

If you want to allow httpd to have getattr access on the index.html file
Then you need to change the label on /var/lockey/html/index.html
Do
# semanage fcontext -a -t FILE_TYPE '/var/lockey/html/index.html'
。。。
Then execute: 
restorecon -v '/var/lockey/html/index.html'

依次执行以下命令:

#修改文件或者目录的安全上下文标签
[root@localhost lockey]# semanage fcontext -a -t httpd_sys_content_t '/var/lockey/html(/.*)?'
#刷新标签
 [root@localhost lockey]# restorecon -RvvF '/var/lockey/html'

好了,重启服务再次访问
这里写图片描述

3.配置虚拟主机
虚拟主机允许您从一个httpd服务器同时为多个网站提供服务

1.建立各网站发布目录并设置SELinux标签

[root@lockey lockey]# mkdir -p /var/lockey/cheng/news.cheng.com
[root@lockey lockey]# mkdir -p /var/lockey/cheng/music.cheng.com
#设置selinux标签
[root@lockey lockey]# ls -lZd /var/lockey/cheng/
drwxr-xr-x. root root unconfined_u:object_r:var_t:s0   /var/lockey/cheng/
[root@lockey lockey]# semanage fcontext -a -t httpd_sys_content_t '/var/lockey/cheng(/.*)?'
[root@lockey lockey]# restorecon -RvvF '/var/lockey/cheng'
restorecon reset /var/lockey/cheng context unconfined_u:object_r:var_t:s0->system_u:object_r:httpd_sys_content_t:s0
restorecon reset /var/lockey/cheng/news.cheng.com context unconfined_u:object_r:var_t:s0->system_u:object_r:httpd_sys_content_t:s0
restorecon reset /var/lockey/cheng/music.cheng.com context unconfined_u:object_r:var_t:s0->system_u:object_r:httpd_sys_content_t:s0
[root@lockey lockey]# ls -lZd /var/lockey/cheng/drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/lockey/cheng/

2.创建虚拟主机默认配置文件:

vim /etc/httpd/conf.d/default.conf
[root@dns-server1 music.cheng.com]# cat /etc/httpd/conf.d/default.conf 
<Virtualhost _default_:80>
    DocumentRoot "/var/lockey/html"
    CustomLog "logs/default.log" combined
</Virtualhost>

3.配置第一个网站

[root@lockey conf.d]# cat news.conf 
<Virtualhost *:80>
    ServerName news.cheng.com
    DocumentRoot /var/lockey/cheng/news.cheng.com
    CustomLog "logs/news.log" combined
</Virtualhost>
<Directory "/var/lockey/cheng/news.cheng.com">
    Require all granted
</Directory>
[root@lockey conf.d]# 

4.配置第二个网站

[root@lockey conf.d]# cat music.conf 
<Virtualhost *:80>
    ServerName music.cheng.com
    DocumentRoot /var/lockey/cheng/music.cheng.com
    CustomLog "logs/music.log" combined
</Virtualhost>
<Directory "/var/lockey/cheng/music.cheng.com">
    Require all granted
</Directory>
[root@lockey conf.d]# 

3.需要在访问此网站的主机里配置DNS

[root@lockey conf.d]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.199.130 www.cheng.com news.cheng.com music.cheng.com####新增行
[root@lockey conf.d]# 

测试:在配置过DNS的主机里通过浏览器依次访问:www.cheng.com news.cheng.com music.cheng.com就会看到不同的内容也。
这里写图片描述
这里写图片描述

这里写图片描述
注意:SELinux标签一定要进行设置,否则会出错

4. 配置基于用户的身份验证

在此配置中,用户账户和密码存储在本地.htpasswd文件中。处于安全原因,该文件不能
保存在网站的DocumentRoot中,而应保存在Web服务器不提供服务的一些目录中。特殊
的htpasswd命令用于在.htpasswd文件中管理用户。
配置程序示例:

用两个账户创建Apache密码文件:
[root@localhost lockey]#  htpasswd -cm /etc/httpd/lockey lockey
#首次创建密码文件需要加参数c,后面就不再需要了
[root@localhost lockey]#  htpasswd -m /etc/httpd/lockey halo
假设之前定义VirtualHost块,请将诸如以下内容添加至VirtualHost块:
<Directory /var/www/html>
AuthName “Password Auth”
AuthType basic
AuthUserFile /etc/httpd/lockey
Require valid-user
</Directory>
重启apache服务,并使用Web浏览器测试访问,在弹出的对话框中输入上述用户名和密码才可正常访问网站
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值