Web网站服务 Apache

“Apache HTTP Server”是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务。
 
LAMP
WISA    Windows IIS Sqlserver Asp
LAMP    Linux Apache Mysql PHP、Perl、Python
LNMP    Linux Nginx Mysql PHP、Perl、Python
Nginx比Apache响应速度快,处理静态页面能力更强
Apache比Nginx功能强大,负载量也大

apache起源
apache特点:
开放源代码、支持各种语言、跨平台使用、模块化设置、运行稳定、良好的安全性

版本
1.x
2.x

安装apache

安装方式
rpm
tar
yum


mount
/media
/mnt


rpm -ivh   lynx-2.8.8-0.3.dev15.el7.x86_64
lynx-level-2.8.8-0.3.dev15.el7.x86_64
lynx-client-2.8.8-0.3.dev15.el7.x86_64


rpm安装:
apr和apr-util:通用开发组件
cyrus-sasl-devel:协议认证环境
pcre和pcre-devel:perl库
mailcap:邮件消息/web文档
httpd-tools:http工具包
[root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-19.2.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh expat-devel-2.1.0-8.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh libdb-devel-5.3.21-19.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh openldap-devel-2.4.40-8.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh pcre-devel-8.32-15.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh pcre-8.32-15.el7.x86_64.rpm

rpm -qa | grep httpd
httpd-2.4

1、linux     Centos7.3(纯净)
2、在电脑上插入光盘
3、mkdir  /media/dvd
      mount  /dev/cdrom /media/dvd
4、rpm  -qa | grep  httpd
5、安装  滤清思路(依赖关系)

-rw-r--r--. 1 root root 2229 10月 23 2018 /etc/passwd
-  文件
d  目录
l   链接文件
b  块设备文件

rwx:421读写执行    644:文件    755:目录
rw-r--r--
rw-    6        用户
r--     4        组
r--     4        其他用户

selinux  沙盒内核

1        链接文件
root root        属主/属组
2229        大小
10月 23 2018    最后一次修改时间
/etc/passwd    文件名

yum安装(需要挂载光盘)
mount /dev/cdrom /media
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/yum.repo
[yum]
name=yum
baseurl=file:///media
enabled=1
gpgcheck=0


tar安装:
apr和apr-util:通用开发组件
tar zxf apr-1.5.2.tar.gz -C /usr/src/
cd /usr/src/apr-1.5.2/
 ./configure --prefix=/usr/local/apr && make -j 4 && make install

tar zxvf apr-util-1.5.4.tar.gz -C /usr/src/
cd  /usr/src/apr-util-1.5.4/
./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr && make -j 4 && make install

 yum -y install pcre-devel openssl-devel zlib-devel

http的安装:
tar zxvf httpd-2.4.25.tar.gz -C /usr/src/
cd /usr/src/httpd-2.4.25/
./configure  --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shared=all --with-mpm=event --enable-deflate --enable-cgid --enable-modules=most --enable-shared=most --enable-ssl

选项:
 --enable-so:启用动态加载模块支持
--enable-rewrite:地址重写功能
--enable-charset-lite :启用字符集支持
--enable-cgid:支持线程MPMs
--with-apr=/usr/local/apr:指定apr路径
--with-apr-util=/usr/local/apr-util/:指定apr-util路径

--enable-mpms-shared=all:支持共享MPM:多道处理模块
--with-mpm=event
(apache:工作模式→prefork,worker,event) 
支持默认的MPM(apache2.2版本:默认支持prefork,
                apache2.4版本:默认支持event)
    prefork:单进程响应单请求(web服务器提空多个空闲进程,供客户端访问)
    worker:单进程多线程,每个线程响应一个请求
    event:一个进程生成多个线程,每个线程响应多个请求
--enable-deflate:支持内容压缩(web中压缩文本,httpd只能处理静态请求)
--enable-cgid:支持线程MPMs
--enable-modules=most:支持大部分模块
--enable-mods-shared=most:支持共享摸块
--enable-ssl:支持ssl

make  && make install

验证:
ls /usr/local/httpd/
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules

1、挂载光盘
2、写本地yum库
3、安装apr和apr-utils(tar)
4、yum安装三种依赖软件
5、安装httpd(apache)
解压→配置(./configure )→编译和安装
6、验证

主要目录含义:
ls /usr/local/httpd/
bin:二进制文件
build:构建工具目录,编译安装都有
cgi-bin:通用网关接口
conf:配置文件
error:错误信息
htdocs:网页目录
icons:图标
include:头文件
logs:日志    access_log:访问日志    error_log:错误日志
man:在线帮助手册
manual:帮助文档。官网网站内容放这里
modules:模块。和一个应用程序对接需要到的模块。

优化
ln -s /usr/local/httpd/bin/* /usr/local/bin/
ln -s /usr/local/httpd/include/* /usr/local/include/

[root@lala ~]# httpd -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  worker.c

查看httpd版本信息
[root@lala ~]# httpd -v
Server version: Apache/2.4.25 (Unix)
Server built:   Jul 30 2019 00:26:04

建立可控的服务脚本
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
添加
#chkconfig:35 25 25
特殊用法,不算注释,设置开启自动启用服务
35    服务识别参数,在级别3和5中启动
25    启动优先级
25    关闭优先级
#description:this is apache.my apache!haha    描述信息

将httpd服务添加到服务管理器
chkconfig --add httpd
设置开机自动启动
chkconfig httpd on

建立[service]配置文件
vim /lib/systemd/system/httpd.service
添加
[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=On-failures
RestartSec=42s

[Install]
WantedBy=graphical.target

配置httpd服务
vim /usr/local/httpd/conf/httpd.conf 
200行下面添加
ServerName 192.168.6.20:80

启动服务
systemctl restart httpd

部署主页文件
vim /usr/local/httpd/htdocs/index.html
<html>
<body>
<h1>318de gushi</h1>
<p>床前明月光</p>
<p>疑是地上霜</p>
<p>举头望明月</p>
<p>我是李飞翔</p>
</body>
</html>

虚拟主机:在同一个服务器上搭建多个web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”web主机。只需要运行一个httpd服务
基于:IP    PORT    DOMAIN NAME
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
VirtualHost *:80
apache2.2及以前的版本基于域名的虚拟主机必须使用的声明
apache2.4不再用此选项

<VirtualHost *:80>
    ServerAdmin:管理员邮箱
    DocumentRoot:网站目录
    ServerName:域名
    ServerAlias:域名别名
    ErrorLog:错误日志
    CustomLog:访问日志
</VirtualHost>

基于域名的虚拟主机
挂载光盘
搭建DNS
yum -y install bind bind-libs bind-utils
setenforce 0
systemctl stop firewalld

vim /etc/named.conf (全局配置文件),全删掉,然后粘贴
options {
        directory "/var/named";
};
zone "baidu.com"        IN {
        type master;
        file "baidu.com";
};
zone "sohu.com"        IN {
        type master;
        file "sohu.com";
};

cd /var/named/
cp named.localhost baidu.com
cp named.localhost sohu.com

添加主机配置文件
vim baidu.com 
             NS      www.baidu.com.
www     A       192.168.6.20

vim sohu.com 
             NS      www.sohu.com.
www     A       193.168.6.20

 cd /var/named/
chown named.named baidu.com sohu.com

vim /usr/local/httpd/conf/httpd.conf 
Options None        238
Include conf/extra/httpd-vhosts.conf(去掉#)        483

mkdir -p /var/www/{baidu,sohu}
cd /var/www/baidu/
vim index.html    主页内容自己写

cd /var/www/sohu/
vim index.html    主页内容自己写

vim  /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/var/www/baidu"
    ServerName www.baidu.com
    ServerAlias baidu.com
    ErrorLog "logs/www.baidu.com-error_log"
    CustomLog "logs/www.baidu.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/sohu"
    ServerName www.sohu.com
    ErrorLog "logs/www.sohu.com-error_log"
    CustomLog "logs/www.sohu.com-access_log" common
</VirtualHost>

验证:
客户机上加DNS地址(DNS服务器的地址)
结果不通,因为没授权

所以:
vim  /usr/local/httpd/conf/extra/httpd-vhosts.conf
在头部添加:(记住确认防火墙已经关闭)
<Directory "/var/www">
Require all granted
</Directory>

再次验证:
firefox http://www.baidu.com
firefox http://www.sohu.com

客户机地址限制
<Directory>
Require all granted
</Directory>

常用策略格式
Require all granted:表示允许所有主机访问
Require all denied:表示拒绝所有主机访问
Require local:表示仅允许本地主机访问
Require [not] host<主机名或域名列表>:表示允许或拒绝指定主机或域访问。
Require [not] ip<IP地址或网段列表>:表示允许或拒绝指定IP地址网段访问。

例:
<Directory>
Require all granted
Require not 192.168.6.50/24  192.168.6.51/24
</Directory>

用户授权访问
cd /usr/local/httpd/bin/
htpasswd -c /usr/local/httpd/conf/.awspwd ls
htpasswd -c /usr/local/httpd/conf/.awspwd ww
htpasswd /usr/local/httpd/bin/.awspwd zl
总结:加-c覆盖之前的用户
          不加-c追加之前的用户

cat /usr/local/httpd/conf/.awspwd 

在vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 配置文件中添加
<Directory "/var/www">
        Require all denied
        AuthName "DocumentRoot"
        AuthType Basic
        AuthUserFile /usr/local/httpd/conf/.awspwd
        require valid-user
</Directory>

AuthName:名称
AuthType Basic:认证类型为基本认证
AuthUserFile:保存用户账号、密码的认证文件
require valid-user:只有认证文件中的合法用户才能访问

systemctl restart httpd

验证:
浏览器会首先弹出认证对话框。只有输入正确的用户名和密码后才能查看网页,否则将拒绝访问。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库从删库到跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值