Httpd服务 实现

Httpd服务

一.目的:

1、建立httpd服务,要求:

(1)提供两个基于名称的虚拟主机www1, www2;有单独的错误日志和访问日志;

(2)通过www1的/server-status提供状态信息,且仅允许tom用户访问;

(3)www2不允许192.168.0.0/24网络中任意主机访问;

2、为上面的第2个虚拟主机提供https服务;

二.大体流程概述

A.为https申请证书:需要自建证书Server

B.安装Httpd

C.配置文件使其达到上述要求

三.let’s begin inCentOS6.7 + Httpd2.2

A.证书

1.生成根证书 (根证书和密钥放置路径 由/etc/pki/tls/openssl.cnf 定义)

[loaclhost:~]yum install openssl

[localhost:~]cd /etc/pki/CA

[localhost:CA](umask 077;openssl genrsa –out private/cakey.pem 1024)

[localhost:CA] openssl req –x509 –new–key private/cakey.pem –out cacert.pem

[localhost:CA]touchindex.txt

[localhost:CA]echo“01”>serial

2.申请证书

[loaclhost:~](umask 077;openssl genrsa –out cakey.pem 1024)

[loaclhost:~]opensslreq –new –key cakey.pem –out cacertreq.pem

3.颁发证书

[loaclhost:~]openslca –in cacertreq.pem –out cacert.cer

B.安装Httpd services

1.安装httpd

[localhost:~]yuminstall httpd

[lcoalhost:~]ll/etc/httpd

Conf----------------------------------------------------主配置文件conf/httpd.conf

conf.d--------------------------------------------------辅助配置文件目录(conf/httpd.conf--------------------------------------------------------------有”Include conf/*.conf“)

logs -> ../../var/log/httpd-------------------------日志目录

modules -> ../../usr/lib64/httpd/modules----模块目录

run -> ../../var/run/httpd--------------------------放置pid文件目录

2.安装mod_ssl

[lcoalhost:~]yuminstall mod_ssl

[localhost:~]rm–f /etc/httpd/conf.d/ssl.conf

C.配置文件

1.配置主文件:

[localhost:~]cat/etc/httpd/conf/httpd.conf

ServerTokens OS

ServerRoot /etc/httpd

KeepAlive On

KeepAliveTimeout10

Timeout 5

MaxKeepAliveRequests100

Includeconf.d/*.conf

PidFilerun/httpd.pid

DirectoryIndexindex.html  index.php

TypesConfig/etc/mime.types

useCanonicalNameOff

User apache

Group apache

LogFormat"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"\"%{User-agent}i\"" combined

LogLevel warn

ErrorLoglogs/error_log

CustomLoglogs/acces_log combined

<Directory/>

Optionsnone

AllowOverridenone

Order        Allow,Deny

AllowFrom All

</Directory>

SSLENGINE ON

SSLCertificateFile  /root/cacert.cer

SSLCertificateKeyFile/root/cakey.pem

2.Modules配置文件:

[localhost:~]cat /etc/httpd/conf.d/loadmodules

LoadModuleauth_basic_module modules/mod_auth_basic.so

LoadModuleauth_digest_module modules/mod_auth_digest.so

LoadModule authn_file_modulemodules/mod_authn_file.so

LoadModuleauthn_alias_module modules/mod_authn_alias.so

LoadModuleauthn_anon_module modules/mod_authn_anon.so

LoadModuleauthn_dbm_module modules/mod_authn_dbm.so

LoadModuleauthn_default_module modules/mod_authn_default.so

LoadModuleauthz_host_module modules/mod_authz_host.so

LoadModuleauthz_user_module modules/mod_authz_user.so

LoadModuleauthz_owner_module modules/mod_authz_owner.so

LoadModuleauthz_groupfile_module modules/mod_authz_groupfile.so

LoadModule authz_dbm_modulemodules/mod_authz_dbm.so

LoadModuleauthz_default_module modules/mod_authz_default.so

LoadModuleldap_module modules/mod_ldap.so

LoadModuleauthnz_ldap_module modules/mod_authnz_ldap.so

LoadModuleinclude_module modules/mod_include.so

LoadModulelog_config_module modules/mod_log_config.so

LoadModulelogio_module modules/mod_logio.so

LoadModuleenv_module modules/mod_env.so

LoadModuleext_filter_module modules/mod_ext_filter.so

LoadModulemime_magic_module modules/mod_mime_magic.so

LoadModule expires_modulemodules/mod_expires.so

LoadModuledeflate_module modules/mod_deflate.so

LoadModuleheaders_module modules/mod_headers.so

LoadModuleusertrack_module modules/mod_usertrack.so

LoadModulesetenvif_module modules/mod_setenvif.so

LoadModulemime_module modules/mod_mime.so

LoadModuledav_module modules/mod_dav.so

LoadModulestatus_module modules/mod_status.so

LoadModuleautoindex_module modules/mod_autoindex.so

LoadModuleinfo_module modules/mod_info.so

LoadModuledav_fs_module modules/mod_dav_fs.so

LoadModulevhost_alias_module modules/mod_vhost_alias.so

LoadModulenegotiation_module modules/mod_negotiation.so

LoadModuledir_module modules/mod_dir.so

LoadModuleactions_module modules/mod_actions.so

LoadModulespeling_module modules/mod_speling.so

LoadModuleuserdir_module modules/mod_userdir.so

LoadModulealias_module modules/mod_alias.so

LoadModulesubstitute_module modules/mod_substitute.so

LoadModulerewrite_module modules/mod_rewrite.so

LoadModuleproxy_module modules/mod_proxy.so

LoadModule proxy_balancer_modulemodules/mod_proxy_balancer.so

LoadModuleproxy_ftp_module modules/mod_proxy_ftp.so

LoadModuleproxy_http_module modules/mod_proxy_http.so

LoadModuleproxy_ajp_module modules/mod_proxy_ajp.so

LoadModuleproxy_connect_module modules/mod_proxy_connect.so

LoadModulecache_module modules/mod_cache.so

LoadModulesuexec_module modules/mod_suexec.so

LoadModuledisk_cache_module modules/mod_disk_cache.so

LoadModulecgi_module modules/mod_cgi.so

LoadModuleversion_module modules/mod_version.so

LoadModulessl_module modules/mod_ssl.so

<IfModuleprefork.c>

StartServers 5

MaxSpareServers 10

MinSPareServers 5

MaxRequestsPerChild 200

MaxClients 256

</IfModule>

<IfModuleworker.c>

StartServers 4

ThreadsPerChild 25

MaxSpareThreads 100

MinSpareThreads 50

MaxClients      1000

MaxRequestsPerChild     200

</IfModule>

4.VirtualHost配置

[localhost:~]htpassword–c /etc/httpd/passwd tom

[localhost:~]cat/etc/httpd.conf.d/vhost1

Listen 443

NameVirtualHost172.16.0.202:443

<VirtualHost172.16.0.202:443>

ServerName www1

DocumentRoot /data/web/test/www1

ErrorLog  /etc/httpd/logs/error_www1.log

CustomLog       /etc/httpd/logs/acces_www1.log conbined

<Location /server-status>

SetHandler server-status

Options none

AllowOverride none

AuthType Basic

AuthName "AdminRequire"

AuthUserFile/etc/httpd/passwd

Require user tom

</Location>

</VirtualHost>

<VirtualHost172.16.0.202:443>

ServerName www2

DocumentRoot /data/web/test/www2

ErrorLog /etc/httpd/logs/error_www2.log

CustomLog/etc/httpd/logs/acces_www2.log combined

<Location /server-status>

SetHandler server-status

Options none

AllowOverride none

Order Allow,deny

Allow From 192.168.0

Deny From All

</Location>

</VirtualHost>

在httpd2.4 中达到上述要求只需注意:

  1. NameVirtualHost 不需要定义

2.Httpd2.2 基于IP访问控制使用Order allow,deny \n Allow From ALL

基于用户使用Require user/group

Httpd2.4 基于IP是:Require IPGranted/Denied

基于用户相同

时间: 2024-08-06 22:55:10

Httpd服务 实现的相关文章

lvs DR模式 +keepalived 实现directory 高可用、httpd服务负载均衡集群

功能: lvs+keepalived高可用负载均衡集群中: ·keepalived负责后端real server健康状态检查 如果一台real server服务出现故障,则会从集群服务中剔除,等恢复之后再自动加入到集群. ·keepalived负责负载均衡器(directory server)高可用 A和B两台虚拟机装lvs+keepalived(主)和lvs+keepalived(备),但是对外表现为一个虚拟IP,主服务器会发送消息给备服务器,当备服务器收不到消息的时候,认为主出现故障,然后接

httpd服务的配置

httpd2.2安装 yum安装 # yum install httpd-2.2.15-26.el6.centos.x86_64 配置文档:编辑之前复制一份 vim /etc/httpd/conf/httpd.conf 1.ServerRoot "/etc/httpd"   服务器运行目录 配置文件.错误文档.日志的保持目录 2.端口 Listen [IP] PORT Listen 80 Listen 8080 这样,http://192.168.1.31:8080 就可以访问主页面了

iptables 端口转发 实现访问内网的httpd服务

上篇文章写到通过dhcp实现客户机上网功能,由于公网地址只有一个,我想把内部服务发布到外网就需要通过 "端口转发" 来实现 1.公网服务器: eth0:公网IP eth1:内网IP - 192.168.1.1 2.HTTPD服务器: eth0:内网IP -192.168.1.100 3.实现方法: 通过访问公网IP的8080端口来实现到内网MYSQL服务器的3306端口的访问 4.在公网服务器上: iptables -t nat -A PREROUTING -p tcp --dport

CentOS7安装apache httpd服务

虚拟机:192.168.2.21     [停止防火墙]   sudo systemctl stop firewalld.service      --停止防火墙   sudo systemctl disable firewalld.service   --开机关闭防火墙    [安装apache httpd服务]   cat /etc/yum.repos.d/CentOS-Media.repo   -----查看镜像配置   yum --disablerepo=\* --enablerepo=

httpd服务的安装、配置

httpd服务是架设网站的必须服务下面我就来说下怎么安装配置 1.安装httpd服务 输入下面命令进行安装(如果没网络或者安装速度慢的请设置本地yum源进行安装,设置教程请点击这里查看) yum install httpd -y 安装完成后,输入下面的命令重启httpd服务 service httpd restart或者systemctl start httpd.service (有关systemctl的用法请到Linux分类里查看) 4关闭系统防火墙. service iptables sto

Linux之Web服务(2)Httpd服务配置之一

Linux之Web服务(2)Httpd服务配置之一 Apache HTTP Server Apache HTTP 服务器,简称Apache,是非常留下的Web服务器软件.通常和脚步语言比如PHP,数据库MySQL一起工作,合成为LAMP栈(Linux, Apache, MySQL, PHP). 当然流行的Web服务器还有nigix,但是nigix虽然轻量级很稳定,但是功能并不如Apache HTTP功能丰富,并且现在的Apache HTTP还支持模块化功能,及可以开发自己的功能模块并加入到此We

Linux之Web服务(2)Httpd服务配置之二

Linux之Web服务(2)Httpd服务配置之二 前言 在上一篇通过一些简单的案例或说明来介绍了部分关于Httpd2.4中httpd.conf配置文件中的配置选项及对应的功能.主要是对访问控制和在处理对指定目录或文件进行访问控制的一些安全问题性的处理.但是一直没有提到访问控制的具体讲解,本篇列出访问控制的具体使用选项和功能,以及其它高级配置. 1.Httpd2.4 文档访问授权具体参数 前提:文档访问授权选项配置只适合在以下标签中生效: <Directory >  <FIles>

Linux之Web服务(2)Httpd服务配置之三

Linux之Web服务(2)Httpd服务配置之三 前言 默认安装的Httpd服务一般只有默认的一个DocumentRoot节点配置,及一个站点文档资源存放根目录,但是在生产环境中需要有多种分类的资源,比如用于外部访问和内部访问,又或者是资源本身类型,比如分别用来存放一些文档.图片.单项加密算法文件等,为了更好分配站点管理的资源,Httpd服务提供了VirtualHost及虚拟主机的配置,可以在一个Httpd服务下模拟进行部署多个站点,这样不同的站点进行不同的配置,更方便进行分布式管理. Vir

Linux之Web服务(2)Httpd服务配置之四

Linux之Web服务(2)Httpd服务配置之四 前言 接上一篇的虚拟主机,本片主要介绍虚拟主机的一些搭建和部署,本篇通过一个具体的案例来显示虚拟主机的作用和特性. 案例功能介绍: (1) 准备DNS解析3个域名或者添加/etc/hostst/3条主机名IP档案,解决域名解析 (2) 基于主机名实现三个虚拟主机 (3) 每虚拟主机使用独立的访问日志和错误日志 (4) 在第二个虚拟主机上提供/status: (5) 在第三个虚拟主机提供路径别名/bbs,访问其它文件系统路径: (6) 第三个虚拟

heartbeatV2 haresources 简单实现httpd服务高可用

  实验环境: 虚拟机ha1:192.168.61.130 虚拟机ha2:192.168.61.132 vip:192.168.61.100 实验说明: ha1的httpd服务index.html 内容设置为ha1 ha2的httpd服务index.html 内容设置为ha2 两主机切换工作时以方便观察效果 注意事项: (a) .节点间时间必须同步:使用ntp协议实现: 服务端/etc/ntp.conf供参考: driftfile/var/lib/ntp/drift restrict -6def