HTTP 服务器

HTTP 服务器学习

   目录结构

1   根目录 /etc/httpd/

2   主配置文档 /etc/httpd/conf/httpd.conf

3   主目录   /var/www/html

   httpd.conf详解

      Section 1:Global Environment

1  ServerRoot “/etc/httpd”  服务器的根目录

2  PidFile run/httpd.pid    运行时候进程id文件

3      Timeout 120  指定了服务器和客户端超时时间间隔在两分钟之内自动断开连接

KeepAlive Off  是否打开apache的持续连接功能

MaxKeepAliveRequests 100  限制客户端使用同一个连接进行的请求数量

KeepAliveTimeout 15       在一次持续的连接过程中,两次请求之间的最大时间间隔

4     <IfModuleprefork.c>

StartServers      8     #指apache刚刚开启时候创建8个子进程

MinSpareServers   5    #最小空闲子进程数目

MaxSpareServers  20   #最大空闲子进程数目

ServerLimit     256

MaxClients      256   #设定同时允许的在线人数

MaxRequestsPerChild 4000  #限制每个子进程在终止前所能提出的请求数量

</IfModule>

这种格式在配置文档中页最常见

5     Listen80 监听的端口这里可以监听多个端口,只要是系统上面有效且没有被其他服务占用的端口

6  LoadModuleauth_basic_module modules/mod_auth_basic.so 这些语句是apache 启动时候加载的模块,如果我们安装了模块,可以在这里指定,让它自动加载

7  Include conf.d/*.conf    说名配置文件还包括conf.d/下面的所有conf文件

8

User apache

Group apache  运行时候是以apache身份运行

Section 2: ‘Main‘ server configuration

1     [email protected]   服务器管理员

2  ServerName   ···         服务器名称

3  DocumentRoot “/var/www/html”安装时候网站根目录

我们可以把自己的网站直接放置到此目录下

4   UseCanonicalName Off  指定apache服武器如何构造url地址,服务器名和服务器端口为Off时候,apache使用客户端提供的主机名和端口号,为On时候apache使用ServerName指定的值

5   <Directory />

Options FollowSymLinks

AllowOverride None

Order Deny,Allow

Allow from all

</Directory>

这是一种在配置脚本里面最常见的格式,这里定义了目录的访问控制限制

Options  Indexes FollowSymLinks  定义目录可以支持目录浏览,符号连接

Deny allow 语句可以限制目录的可访问性,比如我们可以把all换成IP或者域名之类的,

站点目录访问控制

6   AllowOverrideNone/All   不启用身份验证//全部启用身份验证控制

启用身份验证时候必须有效的用户输入用户名密码之后才可以访问到

站点。增加了站点的安全性

这里启用身份验证AllowOverrideAll

AccessFileName .htaccess  指定验证的文件名

我们必须在站点主目录下面编辑.htaccess文件格式如下

Vi  .htaccess

authuserfile  路径名称

authtype basic

authname  “说明文字”

require valid-user

eg:

cd /var/www/html

vi .htaccess

authuserfile/var/www/html/.htpasswd #验证文件

authtype basic  #启用基本验证类型

authname “Pleaseinput your name and passwd”

require valid-user   #所有有效用户都可访问

.htpasswd 文件产生方法

htpasswd –c .htpasswd guomin  输入密码第一次文件不存在用-c参数创建

这样就创建了guomin一个有效的帐户

htpasswd .htpasswd zhangsan   输入密码以后就直接添加,不用-c参数

创建zhangsan帐户

讲解:这里的require字段有三种参数

1)  user    2) group    3)   valid-user

如require user user1 user2  即user1和user2具有目录访问权

Require group user1 user2 只有隶属于这两个用户组的用户可以访问

Require valid-user 所有有效的用户都可以访问

个人站点服务:

UserdirDisable  把这一行注释掉,开启个人站点服务

UserDirpublic_html 打开这一行

个人站点就是个人家目录下边的public_html下边的站点

我们创建账号,在家目录下边添加文件夹public_html 编辑网页,

把家目录开启读取权,访问http://192.168.1.1/~username即可

在这里我们可以做别名记录,这样直接访问主地址下面的别名记录就可以了

Alias  /user “/home/user/public_html”

则直接访问http://192.168.1.1/username/即可访问得到

Directory Indexindex.htm  读取目录里的默认文件

虚拟主机配置

1 基于ip地址

多个ip 多个名字  80  多个站点

192.168.1.100         www.guomin.com 80 /var/www/html

192.168.1.101         tec.guomin.com  80 /var/www/tec

192.168.1.102         mkt.guomin.com80 /var/www/mkt

代码如下

<VirtualHost192.168.1.1:80>

ServerAdmin [email protected]

DocumentRoot /var/www/html

ServerName www.guomin.com

ErrorLog /var/www/html/error_log

CustomLog /var/www/html/access_log common

</VirtualHost>

<VirtualHost192.168.2.1:80>

ServerAdmin [email protected]

DocumentRoot /var/www/tec

ServerName tec.guomin.com

ErrorLog /var/www/tec/error_log

CustomLog /var/www/tec/access_log common

</VirtualHost>

<VirtualHost192.168.3.1:80>

ServerAdmin [email protected]

DocumentRoot /var/www/mkt

ServerName mkt.guomin.com

ErrorLog /var/www/mkt/error_log

CustomLog /var/www/mkt/access_log common

</VirtualHost>

配置网卡,子接口地址

建立dns服务器,配置好这几台主机(这里还没介绍DNS,所以可以直接在/etc/hosts文件内部加入映射关系,因为域名的解析是先去找这个文件,如果找不到,才去DNS服务器查询,默认的定义查询顺序在/etc/nsswitch.conf 文件内部定义,有兴趣可以研究······)

在/var/www/下边分别建立对应的站点的主目录,主页文件。

2 基于端口

少量ip 少量名字  多个端口   多个站点

192.168.1.100         www.guomin.com 80 /var/www/html

www.guomin.com  800 /var/www/tec

www.guomin.com  8000 /var/www/mkt

代码如下

<VirtualHost192.168.1.1:80>

ServerAdmin [email protected]

DocumentRoot /var/www/html

ServerName www.guomin.com

ErrorLog /var/www/html/error_log

CustomLog /var/www/html/access_log common

</VirtualHost>

<VirtualHost192.168.1.1:800>

ServerAdmin [email protected]

DocumentRoot /var/www/tec

ServerName www.guomin.com

ErrorLog /var/www/tec/error_log

CustomLog /var/www/tec/access_log common

</VirtualHost>

<VirtualHost192.168.1.1:8000>

ServerAdmin [email protected]

DocumentRoot /var/www/mkt

ServerName www.guomin.com

ErrorLog /var/www/mkt/error_log

CustomLog /var/www/mkt/access_log common

</VirtualHost>

在配置文档搜索Listen字段

加入两行

Listen 80

Listen 800

Listen 8000  这的的端口可以随便指定,但是一定要和VirtualHost 字段中的端口对应

在/var/www/下边分别建立对应的站点的主目录,主页文件。

3       基于主机头

这里要打开NameVirtualHost  字段

NameVirtualHost  192.168.1.100:80

少量ip  多个名字同样端口  多个站点

192.168.1.100 www.abc.com /var/www/html

tec.abc.com /var/www/tec

mkt.abc.com /var/www/mkt

代码如下

<VirtualHost192.168.1.1:80>

ServerAdmin [email protected]

DocumentRoot /var/www/html

ServerName www.guomin.com

ErrorLog /var/www/html/error_log

CustomLog /var/www/html/access_log common

</VirtualHost>

<VirtualHost192.168.1.1:80>

ServerAdmin [email protected]

DocumentRoot /var/www/tec

ServerName tec.guomin.com

ErrorLog /var/www/tec/error_log

CustomLog /var/www/tec/access_log common

</VirtualHost>

<VirtualHost192.168.1.1:80>

ServerAdmin [email protected]

DocumentRoot /var/www/mkt

ServerName mkt.guomin.com

ErrorLog /var/www/mkt/error_log

CustomLog /var/www/mkt/access_log common

</VirtualHost>

建立域名的映射关系,这里tec.guomin.com  mkt.guomin.com 都应为www.guomin.com的别名记录,而不是A记录。搭建好网络直接在浏览器输入域名如www.guomin.commkt.guomin.com进行访问

Apache配置支持cgi动态网站(最早期的网站好多都是基于cgi方式架设起来的。现在不是很流行,单是这项技术很好用,方便,快捷,不需要对动态网站开发语言如PHP JSP .net,直接脚本

开发cgi最常用的就是perl了

安装perl

Rpm –qa|grep perl

Rpm –qa|grepmod_perl

没有的话安装

在主配置文件httpd.conf加入

LoadModuleperl_module modules/mod_perl.so

Alias /cgi-bin/"/var/www/cgi-bin/"  为/var/www/cgi-bin/目录做别名

AddHandlerperi-script .cgi .pl .pm   添加文件类型

<Directory"/var/www/cgi-bin">

AllowOverride None

SetHandler perl-script

PerlHandler ModPerl::Registry

Options ExecCGI

Order allow,deny

Allow from all

</Directory>

设置/var/www/cgi-bin/的访问控制,我们可以直接把我们的perl脚本放置到此目录下,让网页直接调用这些脚本就OK!

时间: 2024-10-21 02:43:48

HTTP 服务器的相关文章

Sqlserver通过链接服务器访问Oracle的解决办法

转自http://blog.sina.com.cn/s/blog_614b6f210100t80r.html 一.创建sqlserver链接服务(sqlserver链接oracle)  首先sqlserver 链接oracle可以通过两个访问接口: “MSDAORA” 和“OraOLEDB.Oracle” 1.“MSDAORA”访问接口是由Microsoft OLE DB Provider for Oracle提供的,这里建议不使用此接口进行链接.通过该访问接口建立的链接服务器在进行查询orac

XShell 连接虚拟机中的服务器 失败 、连接中断(Connection closed by foreign host.)

在使用XShell连接虚拟机中的服务器时,报以下错误并断开连接,之前连接还是挺稳定的,忽然就这样了 Last login: Thu Aug 10 21:28:38 2017 from 192.168.1.102 [[email protected] ~]# Socket error Event: 32 Error: 10053. Connection closing...Socket close. Connection closed by foreign host. Disconnected f

通过SoftEther VPN自建VPN服务器

SoftEther VPN是日本政府的研究和开发项目的一项工作,由日本的经济.贸易和工业部资助,由信息化推进机构管理.SoftEther VPN在日本筑波大学开发的免费软件.具有终极兼容许多设备的高性能VPN.支持Windows.Mac.智能手机.平板电脑(iPhone\iPad\Android\WindowsRT)和思科或其他VPN路由器.SoftEther VPN也接受OpenVPN和MS-SSTP VPN客户端. 可以从http://www.softether-download.com/(

微信开发之本地接口调试(非80端口,无需上传服务器服务器访问

前言: 本文是总结在开发微信接口时,为方便开发所采取的一些快捷步骤,已节省开发人员难度开发时间从而提高开发效率. 本地测试: (提醒,在本地模拟微信get或post数据时先将校验参数注释掉) 利用微信模拟器weixinPost进行模拟发送xml数据 由于这个软件是微信没公开高级接口时公布的,所以对于高级接口的调试,笔者利用的是Fiddler这个抓包工具模拟post数据 高端测试: 利用反向代理软件ngrok访问本地项目: ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之

pfsense Web服务器负载平衡配置示例

在pfsense的网关和服务器中有两种类型的负载平衡功能.网关负载平衡可以通过多个WAN连接分发Internet绑定的流量.服务器负载平衡管理传入流量,因此它利用多个内部服务器进行负载分配和冗余,服务器负载平衡允许流量在多个内部服务器之间分配,它最常用于Web服务器和SMTP服务器.下面我们就以实例来介绍服务器负载平衡的设置. 下面介绍如何通过pfsense2.32配置Web服务器的负载平衡. 网络环境 服务器负载平衡示例网络环境 上图为示例网络环境.它由单个防火墙组成,使用其WAN IP地址池

部署AlwaysOn第一步:搭建Windows服务器故障转移集群

在Windows Server 2012 R2 DataCenter 环境中搭建集群之前,首先要对Windows服务器故障转移集群(Windows Server Failover Cluster,简称WSFC)有基本的了解.WSFC必须部署在域管理环境中,由多台服务器组成,每台服务器称作一个"结点"(Node),每个结点上都运行了Windows服务器故障转移集群服务,整个集群系统允许部分结点掉线.故障或损坏而不影响整个系统的正常运作.集群自动检测结点的健康状态,一旦活跃结点发生异常,变

如何将Win7做为NTP服务器

1. 修改注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer Enabled 设定为 1(默认0) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\ AnnounceFlags 设定为 5 (默认 10) Value Meaning 0 Timeserv_Announce_No, R

win7搭建局域网时间服务器

近日,本人想在局域网内通过普通的windows 7 PC搭建一台NTP服务器,可看似简单的配置却给我捣腾了了半天.初期,参考了互联网的上相关的配置文档,可网络设备就是死活不同步NTP服务器的时间.实在没办法,只有通过来抓包分析了,经过一番研究后,终于找到问题,现将这个文档与大家分享: 通过windows系统为局域网搭建NTP服务器,为局域网内网络设备提供时间服务,经过测试,使用于windows xp.windows 2003.windows 7. 1.启用 NTPServer.为此,请按照下列步

C# 远程服务器 安装、卸载 Windows 服务,读取远程注册表,关闭杀掉远程进程

这里安装windows服务我们用sc命令,这里需要远程服务器IP,服务名称.显示名称.描述以及执行文件,安装后需要验证服务是否安装成功,验证方法可以直接调用ServiceController来查询服务,也可以通过远程注册表来查找服务的执行文件:那么卸载文件我们也就用SC命令了,卸载后需要检测是否卸载成功,修改显示名称和描述也用sc命令.至于停止和启动Windows服务我们可以用sc命令也可以用ServiceController的API,当停止失败的时候我们会强制杀掉远程进程,在卸载windows

C# 远程服务器 创建、修改、删除 应用程序池 网站

首先 C# 操作 站点 需要 引用Microsoft.Web.Administration.dll 文件,创建站点我们一般需要 远程服务的IP,网站名称.端口.物理路径:这里默认网站名称和应用程序池名称一致. 应用程序池默认不启动,应为刚创建站点是没有对应真实的物理文件,修改 队列长度.启动模式.回收时间.最大工作进程, 以及日志路径.修改的时候如果修改站点物理路径的话,我们需要把文件 从旧得目录拷贝到新的目录下,删除站点就比较简单了. 但是站点应用程序池的停止 和启动就比较难搞了,不是调用st