apache服务的配置

apache(web服务器)

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

一、实验环境:

RHEL7.0  172.25.254.10 server1.example.com  firewalld disabled

二、实验内容:

1.apache的安装:

yum install -t httpd httpd-manual

systemctl start httpd  启动apache服务

systemctl enable httpd  自启动

查看端口:

2.apache的主配置文件:

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

3.更改apache默认访问目录:

更改安全上下文,或者把selinux设为disabled都可以。

[[email protected] yum.repos.d]# getenforce
Enforcing

[[email protected] yum.repos.d]# mkdir -p /www/html
[[email protected] yum.repos.d]# ls -ldZ /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
[[email protected] yum.repos.d]# ls -ldZ /www/html/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /www/html/

[[email protected] yum.repos.d]# semanage fcontext -a -t httpd_sys_content_t ‘/www/html(/.*)?‘
[[email protected] yum.repos.d]# restorecon -FvvR /www/html/
restorecon reset /www/html context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
[[email protected] yum.repos.d]# ls -ldZ /www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /www/html/
[[email protected] yum.repos.d]# systemctl restart httpd

修改主配置文件:将默认访问目录改成自己想要的访问目录

vim /etc/httpd/conf/httpd.conf

DocumentRoot "/www/html"
<Directory "/">
    AllowOverride None
    Require all granted
</Directory>

echo hello > /www/html/index.html        给默认发布目录写个首页

systemctl restart httpd        重启服务

测试:

4.更改默认端口:

查看可更改的端口:        ##selinux标签


修改主配置文件更改端口:

vim /etc/httpd/conf/httpd.conf

Listen 80 改成 8080

systemctl restart httpd.service

测试:


5.访问目录权限:

vim /etc/httpd/conf/httpd.conf

DocumentRoot "/www/html"
    <Directory "/">
        AllowOverride None
        Require all granted
        order allow,deny        ##读取按顺序,先读取前面的
        Allow from all             ##允许所有用户访问
        Deny from 172.25.254.20     ##禁止172.25.254.20访问
    </Directory>
systemctl restart httpd.service

测试:

用172.25.254.20主机进行测试:访问被拒绝


用其他主机测试,可以测试成功。

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

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

vim /etc/httpd/conf/httpd.conf        还原默认访问目录和端口

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

[[email protected] html]# mkdir admin

[[email protected] html]# cd admin/

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

my name is xiaoze.

[[email protected] admin]# cd /etc/httpd/conf
[[email protected] conf]# ls

httpd.conf  magic
[[email protected] conf]# htpasswd -cm htpasswd admin        用两个账户创建Apache密码文件,(第一次创建密码文件是需要有“c“参数,m表示使用md5加密)

New password:
Re-type new password:
Updating password for user admin
[[email protected] conf]# htpasswd -m htpasswd xiaoze
New password:
Re-type new password:
Adding password for user xiaoze
[[email protected] conf]# cat htpasswd
admin:$apr1$NmEXjM8K$H9QaQ4IBXsbjjrgqsvoI6/
xiaoze:$apr1$oiBEyWhW$CEe9Js1Gh5pu1TQ3/J.l5.
[[email protected] conf]# ls
htpasswd  httpd.conf  magic
[[email protected] conf]# vim /etc/httpd/conf/httpd.conf 

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

测试:

7.更改默认访问页面:

vim /etc/httpd/conf/httpd.conf

<IfModule dir_module>
         # DirectoryIndex index.html
            DirectoryIndex test index.html
    </IfModule>

测试:

8.php语言支持,可访问cgi等网页:

php语言支持:

yum install -y php (安装php软件包,其中包含mod_php模块)

[[email protected] html]# cat index.php     写php的测试网页
<?php
phpinfo();
?>

systemctl restart httpd.service

测试:

可访问CGI:

通用网关接口(CGI)是网站上放置动态内容的最简单的方法。CGI脚本可用于许多目的,但是谨慎控制使用哪个CGI脚本以及允许谁添加和运行这些脚本十分重要。编写质量差的CGI脚本可能为外部攻击者提供了破坏网站及其内容安全性的途径。因此,在Web服务器级别和SELinux策略级别,都存在用于限制CGI脚本使用的设置。

cd /var/www/html

mkdir scripts

vim index.cgi

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;

chmod +x index.cgi

setenforce 0    设置selinux权限为Permissive

或者以下方法也可以:

semanage fcontext -l | grep httpd

/var/www/perl(/.*)?                                all files          system_u:object_r:httpd_sys_script_exec_t:s0
semanage fcontext -a -t httpd_sys_script_exec_t‘/var/www/html/scripts(/.*)?‘

restorecon -FvvR /var/www/html/scripts

vim /etc/httpd/conf/httpd.conf        编写cgi配置模块

DocumentRoot "/var/www/html"
<Directory "/var/www/html/scripts">
        Options +ExecCGI
        AddHandler cgi-script .cgi
</Directory>

systemctl restart httpd.service

测试:

9.虚拟主机:

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

vim /etc/hosts                将虚拟主机地址做解析

172.25.254.10 news.qq.com

172.25.254.10 sport.qq.com

cd /var/www

[[email protected] www]# mkdir virtual/news/html -p
[[email protected] www]# mkdir virtual/sport/html -p
[[email protected] www]# echo new\‘s page > virtual/news/html/index.html
[[email protected] www]# echo sport\‘s page > virtual/sport/html/index.html
[[email protected] www]# vim /etc/httpd/conf.d/default.conf

<Virtualhost _default_:80>        这是定义虚拟主机的块

DocumentRoot "/var/www/html"         #在<VirtualHost>块内部,指定从中提供内容的目录。

Customlog "logs/default.log" combined
</Virtualhost>

[[email protected] conf.d]# vim /etc/httpd/conf.d/news.conf

<Virtualhost *:80>            #定义虚拟主机的块

Servername news.qq.com        #指定服务器名称。在使用基于名称的虚拟主机的情况下,此处的名称必须与客户端请求完全的匹配。

DocumentRoot "/var/www/virtual/news/html"        #指定从中提供内容的目录。

Customlog "logs/neww.log" combined
</Virtualhost>
<Directory "/var/www/virtual/news/html">        
        Require all granted            #授权
</Directory>

[[email protected] conf.d]# vim /etc/httpd/conf.d/sport.conf

<Virtualhost *:80>
        Servername  sport.qq.com
        Documentroot "/var/www/virtual/sport/html"
        Customlog "logs/sport.log" combined
</Virtualhost>
<Directory "/var/www/virtual/sport/html">
        Require  all granted
</Directory>

systemctl restart httpd.service

测试:

10.HTTPS自定义签名证书:

如果加密的通信非常重要,而经过验证的身份不重要,管理员可以通过生成self-signed certificate来避免与认证机构进行交互所带来的复杂性。使用genkey实用程序(通过crypto-utils软件包分发),生成自签名证书及其关联的私钥。为了简化起见,genkey将在“正确”的位置(/etc/pki/tls目录)创建证书及其关联的密钥。相应地,必须以授权用户(root)身份运行该实用程序。

生成自签名证书:
确保已安装crypto-utils软件包。
[[email protected] ~]# yum install crypto-utils mod_ssl
调用genkey,同时为生成的文件指定唯一名称(例如,服务器的主机全名)。
--days可以指定证书有效期
[[email protected] ~]# genkey server1.example.com

1)记录生成的证书(Apach.example.com .crt)和关联的私钥(Apach.example.com .key)的位置

2) 继续使用对话框,并选择合适的密钥大小。(默认的2048位密钥为推荐值)

3) 在生成随机数时比较慢,敲键盘和移动鼠标可以加速

4) 拒绝向认证机构(CA)发送证书请求(CSR)

5) 拒绝加密私钥

6) 为服务器提供合适的身份。Common Name必须与服务器的主机全名完全匹配。








vim /etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/pki/tls/certs/server1.example.com.crt

SSLCertificateKeyFile /etc/pki/tls/private/server1.example.com.key

systemctl restart httpd.service

测试:

如要进行确认,请使用https协议(https://serverX.example.com)通过Web客户端(如Firefox)访问Web服务器。

Web客户端可能会发出它不认可证书发行者的警告。这种情况适用自签名证书。要求Web客户端绕过证书认证。(对于Firefox,请选择“I
Understand the Risks” [我了解风险]、“Add Exception” [添加例外]和“Confirm Security
Exception”[确认安全例外]。)


11.网页重写:

vim /etc/hosts        添加解析

172.25.254.10 login.qq.com

cd /var/www

mkdir virtual/login/html -p

echo login\‘s page > virtual/login/html/index.html

vim /etc/httpd/conf.d/login.conf

<Virtualhost *:443>
        Servername  login.qq.com
        Documentroot "/var/www/virtual/login/html"
        Customlog "logs/login.log" combined
        SSLEngine  on
        SSLCertificateFile /etc/pki/tls/certs/server1.example.com.crt
        SSLCertificateKeyFile /etc/pki/tls/private/server1.example.com.key
</Virtualhost>
<Directory "/var/www/virtual/login/html">
        Require  all granted
</Directory>
<Virtualhost *:80>
        ServerName login.qq.com
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</Virtualhost>
systemctl restart httpd.service

测试:

时间: 2024-10-07 07:49:52

apache服务的配置的相关文章

Zabbix 3.4.11监控 apache服务的配置

一 zabbix 的安装部署 二监控 apache服务的配置 首先在本机下载模板:https://github.com/rdvn/zabbix-templates/archive/m aster.zip  该 zip 包有 apache.memcache.redis.varnish 模板,我们解压后使用其 中的 apache 模板. unzip master.zip cd zabbix-templates-master/ cd apache/ ls apache_status.sh  apach

RHEL7配置APACHE服务的HA

本文主要目的是可以帮助你按部就班的配置出一套RHEL7的双机服务出来,这里面暂时不会讲到双机概念和为什么这么做,参数为什么这么写,为什么敲这个命令,再详细的文章,等以后,我一定会出 系统版本:RHEL7 ha1::192.168.1.80 ha2 :192.168.1.81 vip: 192.168.1.82 1:先安装两个RHEL7操作系统,安装步骤略,网上镜像和文章一大把,我就不赘述,唯一要注意的是,安装包那里我们选择最基本的basic安装就行了,不需要图形化. 2:配置IP,注意的是,RH

[Apache]改变Apache端口等配置修改方法

 如何改变Apache端口:找到Apache安装目录下conf目录下的httpd.conf文件.打开它,找到"Listen",紧接着Listen的数字就是端口号,默认状态下为"Listen 80".在之前的PHP专题中提到过关于在安装配置Apache时会遇到端口与IIS HTTP端口冲突的问题,因为IIS HTTP端口默认也为80.那么我们就可以在这里改变Apache的端口,从而避免冲突,比如可以改成:Listen 8011.改好之后别忘重起Apache服务使得配置

配置apache apache服务器如何配置多站点

http://jingyan.baidu.com/article/5225f26b07605be6fa090890.html 让Apache在启动时能加载虚拟主机模块. 打开Apache安装目录下conf/httpd.conf文件,找到下面两行文字,把最前面的 # 号去掉,然后保存. #LoadModule vhost_alias_module modules/mod_vhost_alias.so #Include conf/extra/httpd-vhosts.conf   接着找到同一文件中

apache服务与虚拟主机

apache是典型优秀的Web服务器,可以运行在linux,unix,windows等环境.其具有开源,跨平台,支持各种语言,模块化设置,稳定与安全等特点. 以红冒企业版RHEL5为例,搭建与配置apache服务. 配置好IP,网关,掩码等基本信息. 为了避免端口和程序发生冲突,删除以RPM包安装的相关软件.可根据实际情况删除. rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-co

centos7之最基本的apache服务

实验环境:只需要一台centos7服务端即可,地址设为192.168.1.3 关闭selinux和防火墙 实验步骤: 1.安装 apache服务相关的软件包 #yum -y install httpd httpd-devel 2.修改apache主配置文件 vim /etc/httpd/conf/httpd.conf 修改内容如下图所示: 3.创建默认文档,并添加内容 vim /var/www/html/index.html 然后输入网站内容 随便写几个字就行,比如就写这是我的第一个网站 4.检

ansible-playbook一键化部署apache服务

原创 chaos_oper 最后发布于2019-06-13 21:31:44 阅读数 463 收藏展开Playbook(任务剧本) playbook是简单易用的自动化语言编排定义ansible任务集的配置文件,由ansible顺序依次执行,通常是JSON格式的* YML文件playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础.Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式.实战:playbook

linux平台下apache的源码安装和将apache服务配置成系统服务

安装apache服务 下载apache源码包 # tar -zxvf http-2.2.29.tar.gz # cd http-2.2.29 #   ./configure --prefix=/usr/local/apache  --enable-so --enable-cgi #   make #   make install 配置成系统服务: #  cp /usr/local/apache/bin/apachectl /etc/init.d/httpd #  cp /usr/local/ap

linux杂谈(二十):apache服务配置

1.apache简介 ? ?我们经常要浏览网页,提供这样的服务是apache.提供apache服务的软件是httpd服务. ? ?Apache支持許多特性,大部分通过编译的模块实现.這些特性從伺服器端的程式語言支援到身份認證方案.一些通用的语言接口支持Perl,Python,Tcl, 和PHP.流行的认证模块包括mod_access,mod_auth和mod_digest.其他的例子有SSL和TLS支持(mod_ssl),代理服务器(proxy)模块,很有用的URL重写(由mod_rewrite