5Linux网络服务之Web网站服务
lipiwang 2024-11-24 18:36 9 浏览 0 评论
Apache网站服务基础
一 Apache简介
“Apache HTTP Server”是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在web服务器领域中长期保持着超过半数的份额。可以运行在Linux、Unix、Windows等多种操作系统平台中。
1 主要特点
开放源代码、跨平台应用
支持多种网页编程语言
模块化设计 、运行稳定、良好的安全性
2 软件版本
1.X
目前最高版本是1.3,运行稳定
向下兼容性较好,但缺乏一些较新的功能
2.X
目前主要包括2.0和2.2两个版本
具有更多的功能特性
与1.X相比,配置管理风格存在较大差异
3 编译安装的优点
具有较大的自由度,功能可定制
可及时获得最新的软件版本
普遍适用于大多数Linux版本,便于移植使用
4 获得Apache服务器的源码包
参考地址:http://httpd.apache.org/download.cgi
二 安装httpd服务器(源码安装)
1 准备工作
1 卸载httpd及相关依赖包
:rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot --nodeps
2 源码编译及安装
1)挂载安装盘
:mount /dev/cdrom /media
- 解包
:tar zxf /media/chapter05/httpd-2.2.17.tar.gz -C /usr/src
:cd /usr/src/httpd-2.2.17
- 配置
:./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
如果配置报错,则升级arp相关依赖包
- 编译
:make
- 安装
:make install
- 确认安装结果
:ls /usr/local/httpd/ //不是空目录即可
- 优化执行路径
ln -s /usr/local/httpd/bin/* /usr/local/bin/ 默认搜索路径
8)添加httpd系统服务
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //复制apachectl脚本为httpd
vi /etc/init.d/httpd //添加chkconfig识别配置
#!/bin/bash
# chkconfig: 35 85 15 //识别配置,级别3、5中启动,顺序为85、15
# description: Startup script for the Apache HTTP Server //描述信息
:chkconfig --add httpd //添加为系统服务
:chkconfig --list httpd //查看自启动状态
9)启动服务
:/usr/local/httpd/bin/apachectl start
三 httpd服务的目录结构
主要目录和文件:
服务目录:/usr/local/httpd/
主配置文件:/usr/local/httpd/conf/httpd.conf
网页目录:/usr/local/httpd/htdocs/
服务脚本:/usr/local/httpd/bin/apachectl
执行程序:/usr/local/httpd/bin/httpd
访问日志: /usr/local/httpd/log/access_log
错误日志: /usr/local/httpd/log/error_log
四 httpd.conf配置文件
:vim /usr/local/httpd/conf/httpd.conf
常用的全局配置参数
ServerRoot:服务目录
ServerAdmin:管理员邮箱
User:运行服务的用户身份
Group:运行服务的组身份
ServerName:网站服务器的域名
DocumentRoot:网页文档的根目录
Listen:监听的IP地址、端口号
PidFile:保存httpd进程PID号的文件
DirectoryIndex:默认的索引页文件
ErrorLog:错误日志文件的位置
CustomLog:访问日志文件的位置
LogLevel:记录日志的级别,默认为warn
Timeout:网络连接超时,默认为300秒
KeepAlive:是否保持连接,可选On或Off
MaxKeepAliveRequests:每次连接最多请求文件数
KeepAliveTimeout:保持连接状态时的超时时间
Include:需要包含进来的其他配置文件
区域配置项
<Directory “网页地址 />
Options FollowSymLinks //允许使用符号链接
AllowOverride None //不允许隐含控制文件中的覆盖配置
Order deny,allow //访问控制策略应用顺序(允许所有没有禁止的)
Deny from all //禁止所有
</Directory>
五 重启服务进行测试
:/usr/local/httpd/bin/apachectl restart //重启
直接在客户机上测试,有默认站点
六 构建虚拟主机
虚拟Web主机
在同一台服务器中运行多个Web站点,其中每一个站点不独立占用一台真正的计算机
httpd支持的虚拟主机类型
基于域名的虚拟主机
基于IP地址的虚拟主机
基于端口的虚拟主机
七 实验
作者:马向军 时间:2013-05-16
实验目的:搭建web服务,完成实验要求
实验要求:
1 搭建web服务,并为网站提供DNS解析
2 限制指定ip的客户端访问站点
3 只允许公司内部员工访问站点
4 构建基于域名的虚拟主机(两个站点对应两个域名一个ip)
5 构建基于ip地址的虚拟主机(两个ip对应两个站点)
6 构建基于端口的虚拟主机(一个站点一个域名两个端口对应不同网页)
实验环境:如图所示
实验步骤:
要求1(使用域名访问站点)
1 安装DNS服务并配置
:vim /var/named/chroot/etc/named.conf //创建正向区域
options {
directory "/var/named";
};
zone "benet.com." IN {
type master;
file "benet.com.zone";
};
:vim /var/named/chroot/var/named/benet.com.zone //添加主机记录
$TTL 86400
@ SOA benet.com. admin.benet.com. (
2013030201
3H
15M
1W
1D
)
@ IN NS mazi.benet.com.
IN MX 10 mail.benet.com.
www IN A 192.168.1.100
2 安装web服务并配置
:vim /usr/local/httpd/conf/httpd.conf
ServerName mazi.benet.com:80 配置网站名称
3 重启服务
:service named start 启动dns服务
:/usr/local/httpd/bin/apachectl start 启动web服务
要求2(客户机地址限制)
:vim /usr/local/httpd/conf/httpd.conf
<Directory "/usr/local/httpd/htdocs"> //访问控制的网页
……
Order deny,allow //允许所有未经阻止的
deny from 192.168.1.10 //阻止此ip访问
</Directory>
:/usr/local/httpd/bin/apachectl start //重启服务
要求3(用户授权限制)
1 创建用户认证数据库
:cd /usr/local/httpd/
:bin/htpasswd -c /usr/local/httpd/conf/.awspwd u1 新建u1用户和数据库
New password: //密码
Re-type new password: //再次输入密码
Adding password for user u1
:bin/htpasswd /usr/local/httpd/conf/.awspwd u2 //创建新用户
: cat /usr/local/httpd/conf/.awspwd //确认创建的用户
- 添加用户授权配置
:vim /usr/local/httpd/conf/httpd.conf
<Directory "/usr/local/httpd/htdocs"> //要用户认证的网页
AuthName "nihao" //登录对话框提示信息
AuthType Basic //认证类型为基本认证
AuthUserFile /usr/local/httpd/conf/.awspwd //密码文件路径
require valid-user //只有认证用户才能访问
</Directory>
地址限制和用户授权限制可以同时针对一个站点生效
要求4(构建基于域名的虚拟主机)
- 为虚拟主机提供域名解析(指向相同ip)
vim /var/named/chroot/etc/named.conf //创建两个正向区域
options {
directory "/var/named";
};
zone "benet.com." IN {
type master;
file "benet.com.zone";
};
zone "accp.com." IN {
type master;
file "accp.com.zone";
};
:vim /var/named/chroot/var/named/benet.com.zone //创建区域文件添加主机记录
$TTL 86400
@ SOA benet.com. admin.benet.com. (
2013030201
3H
15M
1W
1D
)
@ IN NS mazi.benet.com.
www IN A 192.168.1.100
ftp IN CNAME www
: vim /var/named/chroot/var/named/accp.com.zone //创建区域文件添加主机记录
$TTL 86400
@ SOA accp.com. admin.accp.com. (
2013030201
3H
15M
1W
1D
)
@ IN NS mazi.benet.com.
www IN A 192.168.1.100
ftp IN CNAME www
:service named restart //重启DNS服务
2.为虚拟主机准备网页文档
:mkdir -p /var/www/html/benet 创建网页站点目录
:mkdir -p /var/www/html/accp
:echo "<h1>benet.com</h1>" > /var/www/html/benet/index.html 创建网页文档
:echo "<h1>accp.com</h1>" > /var/www/html/accp/index.html
- 添加虚拟主机配置(相同ip相同端口)
:vim /usr/local/httpd/conf/extra/httpd-vhosts.conf //创建独立的配置文件
<Directory "/var/www/hrml"> //设置目录访问权限
Order allow,deny
Allow from all //允许所有
</Directory>
NameVirtualHost 192.168.1.100:80 //设置监听地址
<VirtualHost 192.168.1.100:80> //设置benet虚拟站点区域
DocumentRoot "/var/www/html/benet" //虚拟站点地址
ServerName www.benet.com //域名
ErrorLog "logs/dummy-host.example.com-error_log" //错误日志目录
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.100:80>
DocumentRoot "/var/www/html/accp" //设置accp虚拟站点区域
ServerName www.accp.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
3 加载独立的配置文件
:vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf //加载独立的配置文件
:/usr/local/httpd/bin/apachectl restart //重启服务
要求5(构建基于ip的虚拟主机)
1 给服务器再配置一个ip模拟两个ip
:ifconfig etho:1 192.168.1.101 //配置ip
2 添加主机记录(指向不同ip)
:vim /var/named/chroot/var/named/benet.com.zone
.....................
@ IN NS mazi.benet.com.
www IN A 192.168.1.100
ftp IN CNAME www
:vim /var/named/chroot/var/named/accp.com.zone
.....................
@ IN NS mazi.benet.com.
www IN A 192.168.1.101
ftp IN CNAME www
3 创建独立的配置文件(只需修改不同ip即可)
:vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<Directory "/var/www/hrml"> //设置目录访问权限
Order allow,deny
Allow from all //允许所有
</Directory>
<VirtualHost 192.168.1.100:80> //设置benet虚拟站点区域
DocumentRoot "/var/www/html/benet" //虚拟站点地址
ServerName www.benet.com //域名
ErrorLog "logs/dummy-host.example.com-error_log" //错误日志目录
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.101:80>
DocumentRoot "/var/www/html/accp" //设置accp虚拟站点区域
ServerName www.accp.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
4 加载独立的配置文件
:vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf //加载独立的配置文件
:/usr/local/httpd/bin/apachectl restart //重启服务
:service named restart //重启服务
要求6(构建基于端口的虚拟主机)
1添加主机记录(指向相同ip)
:vim /var/named/chroot/var/named/benet.com.zone.
....................
@ IN NS mazi.benet.com.
www IN A 192.168.1.100
:vim /var/named/chroot/var/named/accp.com.zone
.....................
@ IN NS mazi.benet.com.
www IN A 192.168.1.100
2 创建独立的配置文件(只需修改不同端口即可)
:vim /usr/local/httpd/conf/extra/httpd-vhosts.conf //创建独立的配置文件
<Directory "/var/www/hrml"> //设置目录访问权限
Order allow,deny
Allow from all //允许所有
</Directory>
<VirtualHost 192.168.1.100:80> //设置benet虚拟站点区域
DocumentRoot "/var/www/html/benet" //虚拟站点地址
ServerName www.benet.com //域名
ErrorLog "logs/dummy-host.example.com-error_log" //错误日志目录
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.00:808>
DocumentRoot "/var/www/html/accp" //设置accp虚拟站点区域
ServerName www.accp.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
3 加载独立配置文件并设置监听端口
:vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf
Listen 80
Listen 88
:/usr/local/httpd/bin/apachectl restart //重启服务
:service named restart //重启服务
相关推荐
- 前端入门——css 网格轨道详细介绍
-
上篇前端入门——cssGrid网格基础知识整体大概介绍了cssgrid的基本概念及使用方法,本文将介绍创建网格容器时会发生什么?以及在网格容器上使用行、列属性如何定位元素。在本文中,将介绍:...
- Islands Architecture(孤岛架构)在携程新版首页的实践
-
一、项目背景2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题:维护/...
- HTML中script标签中的那些属性
-
HTML中的<script>标签详解在HTML中,<script>标签用于包含或引用JavaScript代码,是前端开发中不可或缺的一部分。通过合理使用<scrip...
- CSS 中各种居中你真的玩明白了么
-
页面布局中最常见的需求就是元素或者文字居中了,但是根据场景的不同,居中也有简单到复杂各种不同的实现方式,本篇就带大家一起了解下,各种场景下,该如何使用CSS实现居中前言页面布局中最常见的需求就是元...
- CSS样式更改——列表、表格和轮廓
-
上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。1.列表List1).列表的类型<ulstyle='list-...
- 一文吃透 CSS Flex 布局
-
原文链接:一文吃透CSSFlex布局教学游戏这里有两个小游戏,可用来练习flex布局。塔防游戏送小青蛙回家Flexbox概述Flexbox布局也叫Flex布局,弹性盒子布局。它决定了...
- css实现多行文本的展开收起
-
背景在我们写需求时可能会遇到类似于这样的多行文本展开与收起的场景:那么,如何通过纯css实现这样的效果呢?实现的难点(1)位于多行文本右下角的展开收起按钮。(2)展开和收起两种状态的切换。(3)文本...
- css 垂直居中的几种实现方式
-
前言设计是带有主观色彩的,同样网页设计中的css一样让人摸不头脑。网上列举的实现方式一大把,或许在这里你都看到过,但既然来到这里我希望这篇能让你看有所收获,毕竟这也是前端面试的基础。实现方式备注:...
- WordPress固定链接设置
-
WordPress设置里的最后一项就是固定链接设置,固定链接设置是决定WordPress文章及静态页面URL的重要步骤,从站点的SEO角度来讲也是。固定链接设置决定网站URL,当页面数少的时候,可以一...
- 面试发愁!吃透 20 道 CSS 核心题,大厂 Offer 轻松拿
-
前端小伙伴们,是不是一想到面试里的CSS布局题就发愁?写代码时布局总是对不齐,面试官追问兼容性就卡壳,想跳槽却总被“多列等高”“响应式布局”这些问题难住——别担心!从今天起,咱们每天拆解一...
- 3种CSS清除浮动的方法
-
今天这篇文章给大家介绍3种CSS清除浮动的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。首先,这里就不讲为什么我们要清楚浮动,反正不清除浮动事多多。下面我就讲3种常用清除浮动的...
- 2025 年 CSS 终于要支持强大的自定义函数了?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1.什么是CSS自定义属性CSS自...
- css3属性(transform)的一个css3动画小应用
-
闲言碎语不多讲,咱们说说css3的transform属性:先上效果:效果说明:当鼠标移到a标签的时候,从右上角滑出二维码。实现方法:HTML代码如下:需要说明的一点是,a链接的跳转需要用javasc...
- CSS基础知识(七)CSS背景
-
一、CSS背景属性1.背景颜色(background-color)属性值:transparent(透明的)或color(颜色)2.背景图片(background-image)属性值:none(没有)...
- CSS 水平居中方式二
-
<divid="parent"><!--定义子级元素--><divid="child">居中布局</div>...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)