Web网站服务(Apache)

news/2024/5/10 0:07:16/文章来源:https://blog.csdn.net/DaiSenG/article/details/106506621

Apache网站服务基础

Apache HTTP server 是广泛应用的Web应用之一

Apache简介

Apache HTTP server 是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览器,Apache服务器可以运行在Linux,UNIX,Windows等多种操作系统平台中。

Apache的主要特点

开放源代码 跨平台应用 支持各种Web编程语言:Apache服务器可支持的网页编程语言包括Perl,PHP,PythonJava
等,甚至微软的ASP技术也可以在Apache服务器中使用。
模块化设计:其他软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。
运行非常稳定:Apache服务器可用于构建具有大负载访问量的Web站点。
良好的安全性:Apache服务器具有相对较好的安全性,Apache的维护团队会及时对已发现的漏洞提供修补程序,为Apache的所有使用者提供
尽可能安全的服务器程序。

安装httpd服务器

安装apache的库和头文件

[root@localhost ~]# yum -y install apr  apr-devel  cyrus-sasl-devel  expat-devel libdb-devel  openldap-devel apr-util-devel apr-util pcre-devel pcre

源码编译及安装
源码编译安装httpd服务的过程主要包含解包,配置,编译及安装

[root@localhost media]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
[root@localhost media]# cd /usr/src/httpd-2.4.25/

配置
根据服务器的实际应用需要,可以灵活设置不同的定制选项,如指定安装路径,启用字符集支持等。若要获取可用的各种配置选项及其含义,可以执行"./configure --help"命令,其中"./"表示当前目录

[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd  --enable-so--enable-rewrite --enable-charset-lite  --enable-cgi

//选项含义

–prefix 指定httpd服务程序的安装目录 –enable-so 启用动态加载模块支持,使httpd具备进一步扩展功能的能力
–enable-rewrite 启用网页地址重写,用于网站优化及目录迁移维护 –
enable-charset-lite 启动字符集支持,以便支持使用各种字符集编码的网页
–enable-cgi 启用CGI脚本程序支持,便于扩展网站的应用访问能力

编译及安装

[root@localhost httpd-2.4.25]# make  && make install 

确认安装结果
由于指定的安装目录为/usr/local/httpd,因此httpd服务的各种程序,模块,帮助文件等都将复制到此目录下

[root@localhost httpd-2.4.25]# ls /usr/local/httpd/
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules

主要子目录的用途:

/usr/local/httpd/bin 存放httpd服务各种执行程序文件,主程序httpd、服务控制工具apachectl等
/usr/local/httpd/cgi-bin 存放各种CGI程序文件
/usr/local/httpd/logs 存放httpd服务的日志文件
/usr/local/httpd/conf 存放httpd服务的各种配置文件,包括主配置文件httpd.conf
/usr/local/httpd/htdocs 存放网页文档,包括首页文件index.html等
/usr/loca/httpd/modules 存放httpd服务的各种模块文件

优化执行路径
通过源码编译安装的httpd服务,程序路径并不在默认的搜索路径中,为了使服务在使用时更方便,可以为相关程序添加符号链接

[root@localhost named]# ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@localhost named]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl 
lrwxrwxrwx. 1 root root 30 6月   4 10:48 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl
lrwxrwxrwx. 1 root root 26 6月   4 10:48 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd
[root@localhost named]# httpd -v
Server version: Apache/2.4.25 (Unix)
Server built:   Jun  4 2020 08:25:55

部署网页文档

[root@localhost ~]# cat /usr/local/httpd/htdocs/index.html 
<html><body><h1>It works!</h1></body></html>

启动apachect

[root@localhost ~]# /usr/local/httpd/bin/apachectl start

# 客户机访问web站点
在这里插入图片描述
查看web站点访问情况
httpd服务器使用了两种类型的日志:访问日志和错误日志。这两种日志的文件名分别为access_log和error_log均位于/usr/local/httpd/logs目录下

[root@localhost ~]# tail /usr/local/httpd/logs/access_log
192.168.1.1 - - [04/Jun/2020:10:27:32 +0800] "GET / HTTP/1.1" 200 45
192.168.1.1 - - [04/Jun/2020:10:27:32 +0800] "GET /favicon.ico HTTP/1.1" 404 209
192.168.1.1 - - [04/Jun/2020:10:55:48 +0800] "GET / HTTP/1.1" 304 -

错误日志文件
可以排查服务器运行故障提供参考依据。错误日志文件中的每行对应一条错误记录

[root@localhost ~]# tail /usr/local/httpd/logs/error_log
[Thu Jun 04 09:04:54.289159 2020] [mpm_worker:notice] [pid 22091:tid 139675075962752] AH00292: Apache/2.4.25 (Unix) configured -- resuming normal operations
[Thu Jun 04 09:04:54.289590 2020] [core:notice] [pid 22091:tid 139675075962752] AH00094: Command line: '/usr/local/httpd/bin/httpd'

客户机地址限制

通过Require配置项,可以根据主机的主机名或ip地址来决定是否允许客户端访问

require all granted:表示允许所有主机访问 require all denied:表示拒绝所有主机访问
require local: 表示仅允许本地主机访问 require [not] host
<主机名或域名列表>:表示允许或拒绝指定主机或域名访问 require [not] ip
<ip地址或网段列表>:表示允许或拒绝指定ip地址或网段访问

通常情况下,网站服务器是对所有客户机开放的,网页文档目录并未做任何限制,因此使用的是"require all granted" 策略,表示允许从任何客户机访问

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf 
<Directory "/usr/local/httpd/htdocs">
Require all granted
</Directory>

定义限制策略时,多个不带not的require配置语句之间是或的关系,即任意一条require配置语句满足条件均可以访问。若既出现了不带not的require配置语句,又出现了带not的require配置语句,则语句之间是与的关系,即同时满足所有require配置语句才可以访问
需要使用"仅允许"的限制策略时,应使用require配置语句明确设置允许策略,只允许一部分主机访问

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf ...........  // 省略部分内容Require ip 192.168.1.1  //只允许1.1主机访问
</Directory>
[root@localhost ~]# /usr/local/bin/apachectl restart //重启服务

反之,需要使用’仅拒绝’的限制策略时,灵活使用require与require not 配置设置拒绝策略,只禁止一部分主机访问。

<Directory "/usr/local/httpd/htdocs">.......  //省略部分内容<requireall>Require all grantedrequire not ip 192.168.1.1   仅拒绝1.1访问</requireall>
</Directory>

在这里插入图片描述

用户授权限制

创建用户认证数据文件
httpd的基本认证通过校验用户名,密码组合来判断是否允许用户访问。授权访问的用户账号需要事先建立,并保存在固定的数据文件中。使用专门的htpasswd工具程序,可以创建授权用户数据文件,并维护其中的用户账号。
使用htpasswd工具时,必须指定用户数据文件的位置,添加 -c 选项表示新建立此文件。

[root@localhost /]# cd /usr/local/httpd/
[root@localhost httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd hran 
New password: 				        //根据提示设置密码
Re-type new password: 
Adding password for user hran
[root@localhost httpd]# cat /usr/local/httpd/conf/.awspwd	//确认用户数据文件
hran:$apr1$XDZb5474$YN.ka2OGakVv4Ka/U.CvH0

省略 -c 选项,则表示指定的用户数据文件已经存在,用于添加的用户或修改现有用户的密码。

[root@localhost httpd]# bin/htpasswd  /usr/local/httpd/conf/.awspwd hran
New password: 
Re-type new password: 
Updating password for user hran
[root@localhost httpd]# cat /usr/local/httpd/conf/.awspwd     //确认用户数据文件
hran:$apr1$nBUXqSeq$pyThOlVeuW5rv8XPRPSGo/

添加用户授权配置

[root@localhost ~]#vim /usr/local/httpd/conf/httpd.conf 
<Directory "/usr/local/httpd/htdocs">
...... //省略部分内容authname "documentroot"authtype basicauthuserfile /usr/local/httpd/conf/.awspwdrequire valid-user<requireall>Require all denied</requireall>
</Directory>
[root@localhost ~]# /usr/local/httpd/bin/apachectl restart   //重启服务配置内容生效

验证用户访问授权
当再次访问网站的默认首页时,浏览器会首先弹出认证对话框,只有输入正确的用户名和密码后才能查看网页,否则拒绝访问。
在这里插入图片描述

构建虚拟web主机

虚拟web主机指的是在同一台服务器中运行多个web站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为 ‘虚拟’ web主机。

httpd支持的虚拟主机类型有三种:
基于域名: 每个虚拟主机使用不同的域名,但是对应的ip地址是相同的
基于ip地址 :每个虚拟主机使用不同的域名,且对应的ip地址也不相同。
基于端口:不适用域名,IP地址。而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

基于域名的虚拟主机
为虚拟主机提供域名解析

[root@localhost ~]# vim /etc/named.conf
......  //省略部分内容
zone "benet.com" IN {type master;file "benet.com.zone";
};
zone "hran.com" IN {type master;file "hran.com.zone";
};
[root@localhost ~]# cat /var/named/benet.com.zone
$ttl 86400
@	in	soa	benet.com.	admin.benet.com. (201808293h15m1w1d
)in	ns	ns1.benet.com.
ns1	in	a	192.168.1.11
www	in	a	192.168.1.11[root@localhost ~]# cat /var/named/hran.com.zone
$ttl 86400
@	in	soa	hran.com.	admin.hran.com. (201808293h15m1w1d
)in	ns	ns1.hran.com.
ns1	in	a	192.168.1.11
www	in	a	192.168.1.11

为虚拟主机准备网页文档

[root@localhost ~]# mkdir -p /var/www/html/benetcom
[root@localhost ~]# mkdir -p /var/www/html/hrancom
[root@localhost ~]# echo "<h1>www.benet.com</h1>" > /var/www/html/benetcom/index.html
[root@localhost ~]# echo "<h1>www.hran.com</h1>" > /var/www/html/hrancom/index.html

添加虚拟主机配置

[root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf ..... //省略部分内容                //创建独立的配置文件
<VirtualHost *:80>                 //设置benet虚拟站点区域ServerAdmin webmaster@hran.comDocumentRoot "/var/www/html/benetcom"  //正常访问的网站目录ServerName www.benet.comErrorLog "logs/www.benet.com.error_log"CustomLog "logs/www.benet.com.access_log" common<directory "/var/www/html">    //设置目录访问权限require all granted</directory>
</VirtualHost>
<VirtualHost *:80>                //设置hran虚拟站点区域ServerAdmin webmaster@hran.comDocumentRoot "/var/www/html/hrancom"ServerName www.hran.comErrorLog "logs/www.hran.com.error_log"CustomLog "logs/www.hran.com.access_log" common<directory "/var/www/html">require all granted</directory>
</VirtualHost>
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf 
.......
Include conf/extra/httpd-vhosts.conf    //去#号  加载独立的配置文件
[root@localhost ~]# /usr/local/httpd/bin/apachectl restart  //重启服务使新配置生效

在客户机中访问虚拟web主机
在这里插入图片描述
在这里插入图片描述
基于ip地址的虚拟主机

[root@localhost hrancom]# ifconfig ens33:0 192.168.1.100   //添加一个临时ip
[root@localhost hrancom]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.1.11:80>ServerAdmin webmaster@benet.comDocumentRoot "/var/www/html/benetcom"ServerName www.benet.comErrorLog "logs/www.benet.com.error_log"CustomLog "logs/www.benet.com.access_log" common<directory  "/var/www/html">require all granted</directory>
</VirtualHost><VirtualHost 192.168.1.100:80>ServerAdmin webmaster@hbenet.comDocumentRoot "/var/www/html/hrancom"ServerName www.hran.comErrorLog "logs/www.hran.com.error_log"CustomLog "logs/www.hran.com.access_log" common<directory  "/var/www/html">require all granted</directory>
</VirtualHost>
[root@localhost hrancom]# /usr/local/httpd/bin/apachectl restart 

验证:
在这里插入图片描述
在这里插入图片描述
基于端口的虚拟主机

[root@localhost hrancom]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
<VirtualHost 192.168.1.11:80>
......省略部分内容
</VirtualHost>
<VirtualHost 192.168.1.100:8353>
......省略部分内容
</VirtualHost>
Listen 80               //监听80
Listen 8353             //监听8353
[root@localhost hrancom]# /usr/local/httpd/bin/apachectl restart 

验证
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_899404.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 HttpWebRequest 向网站提交数据

转自&#xff1a;http://www.cnblogs.com/webman/archive/2006/11/17/564106.html HttpWebRequest 是 .net 基类库中的一个类&#xff0c;在命名空间 System.Net 下面&#xff0c;用来使用户通过 HTTP 协议和服务器交互。 HttpWebRequest 对 HTTP 协议进行了完整的封装&#x…

创建springboot项目时改为国内网站

总结 &#xff1a; 第一点&#xff1a;今天进行了蓝桥杯 的竞赛&#xff0c;说一说我的感悟&#xff0c;还是练得不够&#xff0c;其实有挺多熟悉的题&#xff0c;可是还是没做出来&#xff0c;还是征战明年的蓝桥杯吧&#xff0c;还有就是&#xff0c;电脑的问题&#xff0c;…

IISphpstudy搭建网站之:IIS切换phpstudy

为节省内存消耗&#xff0c;在同一台windows2003上搭建了IIS和phpstudy两种类型网站&#xff0c;但一次只开一种。 开启服务时发现&#xff0c;因都是使用80端口&#xff0c;所以会有冲突现象&#xff0c;一般IIS会开机自启&#xff0c;而启动phpstudy时经常报错显示端口被占用…

网站项目管理-如何做好需求分析(转)

前言 随着技术的不断发展和用户对网站功能性的需求不断提高&#xff0c;如今网站项目的设计已经不能再仅仅简单地利用静态Html文件来实现&#xff0c;与前几年网站设计由一两名网页设计师自由的创作相比&#xff0c;网站项目的设计和开发越来越像一个软件工程&#xff0c;也越来…

一个网站的LOGO

今天董事长叫我去谈了话&#xff0c;有了一个网站的构想 于是就先做一个LOGO也来了&#xff0c;好久没有做美工方面的东东了 希望这个LOGO能用上&#xff0c;把网站做起来 像我这种人天生就是为做网站的 董事长也说以前让我们做那些&#xff0c;对我们来说也是和自己的专长搭不…

什么是SSL加密证书?SSL加密证书在网站中有什么作用?SSL加密证书怎么做?SSL证书在网站中有什么好处?

标题什么是SSL加密证书&#xff1f;SSL加密证书在网站中有什么作用&#xff1f;SSL加密证书怎么做&#xff1f;SSL证书在网站中有什么好处&#xff1f;SSL证书又叫做数据加密证书&#xff0c;是保证网站在客户端和服务之前数据传输的安全性&#xff0c;反正我们的网站内容在数据…

通过request对象获取访问网站用户的 IP 访问者的浏览器名 操作系统名 从哪里转过来 以及 Url 上的所有参数...

通过request对象获取访问网站用户的 IP 访问者的浏览器名 操作系统名 从哪里转过来 以及 Url 上的所有参数 可用于jsp 或者 servlet

DIV与Table布局在大型网站的可用性比较

DIV与Table布局在大型网站的可用性比较

使用nginx实现网站负载均衡测试实例

本文版权归学IT网(www.xueit.com)所有&#xff0c;任何单位与个人转载必须保留此段声明&#xff0c;且在文章页面明显位置给出原文连接&#xff0c;否则保留追究法律责任的权利。 如果你关注过nginx&#xff0c;必定知道nginx这个软件有什么用的&#xff0c;如果你的网站访问量…

wordpress企业网站模板

设计精美的wordpress企业网站主题模板 国潮好物wordpress主题模板 国潮好物&#xff0c;配国产主题&#xff0c;为中国制造加油、助力&#xff0c;适合生产、加工、制造业官网的WordPress主题。 WordPress是啥&#xff1f; WordPress是使用PHP语言开发的博客平台&#xff0c…

wordpress企业网站主题

制造业WordPress网站模板 为中国制造2025加油打Call&#xff0c;适合用于生产加工制造行业的WordPress网站模板。 用wordpress主题模板&#xff0c;可以快速搭建起企业官方网站。 wordpress是最好的CMS建站系统 中小微企业建展示型企业官方网站&#xff0c;用wordpress是最佳…

适合外贸建站的wordpress模板

一个好的模板是一个wordpress企业网站的核心和灵魂&#xff0c;强大的wordpress内核足够任何一个中小企业的建站需求。程序方面完全不需要考虑&#xff0c;wordpress外贸建站需要考虑的就是选择一款适合自己的wordpress外贸网站模板。 下面整理了一些非常不错的wordpress网站模…

3个精美漂亮的wordpress律师网站模板

网站是企业的门面&#xff0c;要体现企业的气质&#xff0c;好用又好看的网站&#xff0c;是企业官方网站必备的基本要求。 选择一个适合自己的wordpress模板&#xff0c;搭建自己的律师事务所网站&#xff0c;特别的重要。 律所wordpress主题 高端大气上档次&#xff0c;简…

外贸网站模板

外贸soho一族&#xff0c;不需要花钱找建网站公司建外贸网站&#xff0c;自己用简站wordpress外贸主题模板&#xff0c;也可以搭建起&#xff0c;功能外观漂亮&#xff0c;功能齐全的外贸网站。 下面给大家推荐几个wordpress外贸网站模板 Transit Trade WP外贸网站模板 WordP…

MySQL在大型网站的应用架构演变

摘要&#xff1a;虽然许多人不满意MySQL被Oracle收购后的发展进度&#xff0c;但是该开源数据库被应用的广泛程度仍然不容质疑。然而开源到大型企业应用必然存在着很多的技术挑战&#xff0c;这里我们一起看不同并发访问量级下&#xff0c;Mysql架构的演变。 【编者按】作为最流…

视网膜时代,怎样让你的网站适应视网膜分辨率?

7月20日&#xff0c;最新的iPad就要在国内开卖了。视网膜时代已经来临&#xff0c;你的网站准备好了吗&#xff1f; 下面这个来自mir.aculo.us的信息图&#xff0c;将告诉你&#xff0c;如何让网站适应视网膜分辨率。 [转自:http://www.36kr.com/p/131547.html]

程序员实用工具网站

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/m0_38106923/article/details/100130354 目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 …

CSS ZEN GARDEN的基于标准的网站展示,共七期高品质截图。

由波希米亚整理&#xff0c;蓝色经典论坛独家提供&#xff0c;转载请联系本人和蓝色经典论坛。*仅供欣赏&#xff0c;请勿从事商业用途&#xff01;1 下载本期&#xff1a;第一期 9.47MB 2 下载本期&#xff1a;第二期 5.37MB 3 下载本期&#xff1a;第三期 5.46MB 4 下载本…

使用SpringBoot+Vue+快递100API搭建一个快递查询网站

一、需求描述 1、需求 对接快递100快递查询接口&#xff0c;后端使用Springboot&#xff0c;前端使用vue2element-plus&#xff0c;搭建一个简洁、美观、适配手机端PC端且前后端分离的快递查询网站项目。 2、工具 idea 3、项目准备 前往快递100API开放平台注册账号&#…