马哥linux高薪中级-web服务器(续二)

11、http status

查看web服务器状态的模块:status

要求安装mod_status模块,默认是安装的。

1、已经加载了LoadModule status_module modules/mod_status.so

2、按需要开启ExtendedStatus on

3、配置文件

<Location /status>                                //"/status"可以随意设置,最终代表的就是域名后面的路径

SetHandler server-status                // 这个选项固定不要变

authname "status-auth"             //名字可以任意取

authtype "basic"                          //basic,是固定格式

authuserfile /var/www/.auth-status            //通过htpasswd 命令创建的用户数据库路径

require valid-user                         //启动用户名认证功能。

#    Order deny,allow                            //通过ip进行限制,后面alllow 表示默认权限

#    Deny from all                                 //设置拒绝的ip地址

#    Allow from .example.com             //也可以设置域名、主机名。

</Location>

练习:

建立httpd服务器(编译安装)要求:

1、提供两个基于名称的虚拟主机

a、www1.magedu.com,页面文件为:/web/vhosts/www1 ,错误日志为:/var/log/httpd/www1.err,访问日志为:/var/log/httpd/www1.access

b、www2.magedu.com,页面文件为:/web/vhosts/www2 ,错误日志为:/var/log/httpd/www2.err,访问日志为:/var/log/httpd/www2.access

c、为两个虚拟主机建立各自的主页文件index.html

d、通过www1.megedu.com/status输出httpd的工作状态信息,且提供用户名、密码认证。

2、为上题中的第二个虚拟主机提供https服务。

a、要求证书认证

b、设置部门为tech,主机名为www2.magedu.com,邮件为[email protected]

此服务器禁止来自104.0.0.57主机的访问。

ServerTokens OS

ServerRoot "/etc/httpd"

PidFile run/httpd.pid

Timeout 60

KeepAlive on

MaxKeepAliveRequests 100

KeepAliveTimeout 15

<IfModule prefork.c>

StartServers       8

MinSpareServers    5

MaxSpareServers   20

ServerLimit      256

MaxClients       256

MaxRequestsPerChild  4000

</IfModule>

<IfModule worker.c>

StartServers         4

MaxClients         300

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     25

MaxRequestsPerChild  0

</IfModule>

Listen 80

LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule auth_digest_module modules/mod_auth_digest.so

LoadModule authn_file_module modules/mod_authn_file.so

LoadModule authn_alias_module modules/mod_authn_alias.so

LoadModule authn_anon_module modules/mod_authn_anon.so

LoadModule authn_dbm_module modules/mod_authn_dbm.so

LoadModule authn_default_module modules/mod_authn_default.so

LoadModule authz_host_module modules/mod_authz_host.so

LoadModule authz_user_module modules/mod_authz_user.so

LoadModule authz_owner_module modules/mod_authz_owner.so

LoadModule authz_groupfile_module modules/mod_authz_groupfile.so

LoadModule authz_dbm_module modules/mod_authz_dbm.so

LoadModule authz_default_module modules/mod_authz_default.so

LoadModule ldap_module modules/mod_ldap.so

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

LoadModule include_module modules/mod_include.so

LoadModule log_config_module modules/mod_log_config.so

LoadModule logio_module modules/mod_logio.so

LoadModule env_module modules/mod_env.so

LoadModule ext_filter_module modules/mod_ext_filter.so

LoadModule mime_magic_module modules/mod_mime_magic.so

LoadModule expires_module modules/mod_expires.so

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

LoadModule usertrack_module modules/mod_usertrack.so

LoadModule setenvif_module modules/mod_setenvif.so

LoadModule mime_module modules/mod_mime.so

LoadModule dav_module modules/mod_dav.so

LoadModule status_module modules/mod_status.so

LoadModule autoindex_module modules/mod_autoindex.so

LoadModule info_module modules/mod_info.so

LoadModule dav_fs_module modules/mod_dav_fs.so

LoadModule vhost_alias_module modules/mod_vhost_alias.so

LoadModule negotiation_module modules/mod_negotiation.so

LoadModule dir_module modules/mod_dir.so

LoadModule actions_module modules/mod_actions.so

LoadModule speling_module modules/mod_speling.so

LoadModule userdir_module modules/mod_userdir.so

LoadModule alias_module modules/mod_alias.so

LoadModule substitute_module modules/mod_substitute.so

LoadModule rewrite_module modules/mod_rewrite.so

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule cache_module modules/mod_cache.so

LoadModule suexec_module modules/mod_suexec.so

LoadModule disk_cache_module modules/mod_disk_cache.so

LoadModule cgi_module modules/mod_cgi.so

LoadModule version_module modules/mod_version.so

Include conf.d/*.conf

User apache

Group apache

ServerAdmin [email protected]

ServerName www1.dtedu.com:80

UseCanonicalName Off

<Directory /> #对虚拟目录同样起作用

AllowOverride AuthConfig

Authname "gongbing"

AuthType Basic

AuthUserFile /root/passwd

Require user "gongbing"

</Directory>

<Directory "/var/www/html”>

Options Indexes FollowSymLinks ExecCGI

AllowOverride none

Order allow,deny

Allow from 10.40.0.0/24

</Directory>

<IfModule mod_userdir.c>

#

# UserDir is disabled by default since it can confirm the presence

# of a username on the system (depending on home directory

# permissions).

#

UserDir disabled

#

# To enable requests to /~user/ to serve the user‘s public_html

# directory, remove the "UserDir disabled" line above, and uncomment

# the following line instead:

#

#UserDir public_html

</IfModule>

DirectoryIndex index.html index.html.var

AccessFileName .htaccess

<Files ~ "^\.ht">

Order allow,deny

Deny from all

Satisfy All

</Files>

TypesConfig /etc/mime.types

DefaultType text/plain

<IfModule mod_mime_magic.c>

MIMEMagicFile conf/magic

</IfModule>

HostnameLookups Off

ErrorLog logs/error_log

LogLevel warn

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

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

CustomLog logs/access_log combined

ServerSignature On

Alias /icons/ "/var/www/icons/"

Alias /gongbing "/root/gongbing.html"

<Directory "/var/www/icons">

Options Indexes MultiViews FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

<IfModule mod_dav_fs.c>

# Location of the WebDAV lock database.

DAVLockDB /var/lib/dav/lockdb

</IfModule>

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

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

AllowOverride None

Options None

Order allow,deny

Allow from all

</Directory>

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*

AddIconByType (IMG,/icons/image2.gif) image/*

AddIconByType (SND,/icons/sound2.gif) audio/*

AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe

AddIcon /icons/binhex.gif .hqx

AddIcon /icons/tar.gif .tar

AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv

AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip

AddIcon /icons/a.gif .ps .ai .eps

AddIcon /icons/layout.gif .html .shtml .htm .pdf

AddIcon /icons/text.gif .txt

AddIcon /icons/c.gif .c

AddIcon /icons/p.gif .pl .py

AddIcon /icons/f.gif .for

AddIcon /icons/dvi.gif .dvi

AddIcon /icons/uuencoded.gif .uu

AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl

AddIcon /icons/tex.gif .tex

AddIcon /icons/bomb.gif /core

AddIcon /icons/back.gif ..

AddIcon /icons/hand.right.gif README

AddIcon /icons/folder.gif ^^DIRECTORY^^

AddIcon /icons/blank.gif ^^BLANKICON^^

DefaultIcon /icons/unknown.gif

ReadmeName README.html

HeaderName HEADER.html

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

AddLanguage ca .ca

AddLanguage cs .cz .cs

AddLanguage da .dk

AddLanguage de .de

AddLanguage el .el

AddLanguage en .en

AddLanguage eo .eo

AddLanguage es .es

AddLanguage et .et

AddLanguage fr .fr

AddLanguage he .he

AddLanguage hr .hr

AddLanguage it .it

AddLanguage ja .ja

AddLanguage ko .ko

AddLanguage ltz .ltz

AddLanguage nl .nl

AddLanguage nn .nn

AddLanguage no .no

AddLanguage pl .po

AddLanguage pt .pt

AddLanguage pt-BR .pt-br

AddLanguage ru .ru

AddLanguage sv .sv

AddLanguage zh-CN .zh-cn

AddLanguage zh-TW .zh-tw

LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

ForceLanguagePriority Prefer Fallback

AddDefaultCharset UTF-8

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

AddType application/x-x509-ca-cert .crt

AddType application/x-pkcs7-crl    .crl

AddHandler type-map var

AddType text/html .shtml

AddOutputFilter INCLUDES .shtml

Alias /error/ "/var/www/error/"

<IfModule mod_negotiation.c>

<IfModule mod_include.c>

<Directory "/var/www/error">

AllowOverride None

Options IncludesNoExec

AddOutputFilter Includes html

AddHandler type-map var

Order allow,deny

Allow from all

LanguagePriority en es de fr

ForceLanguagePriority Prefer Fallback

</Directory>

</IfModule>

</IfModule>

BrowserMatch "Mozilla/2" nokeepalive

BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

BrowserMatch "RealPlayer 4\.0" force-response-1.0

BrowserMatch "Java/1\.0" force-response-1.0

BrowserMatch "JDK/1\.0" force-response-1.0

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully

BrowserMatch "MS FrontPage" redirect-carefully

BrowserMatch "^WebDrive" redirect-carefully

BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully

BrowserMatch "^gnome-vfs/1.0" redirect-carefully

BrowserMatch "^XML Spy" redirect-carefully

BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

<Location /status>

SetHandler server-status

Order deny,allow

Deny from 10.40.0.57

Allow from .example.com

</Location>

NameVirtualHost *:80 #这个需要开启,否则报错

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot /web/vhosts/www1/

ServerName www1.dtedu.com

ErrorLog /var/log/httpd/www1.err

CustomLog /var/log/httpd/www1.access common

</VirtualHost>

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot /web/vhosts/www2/

ServerName www2.dtedu.com

ErrorLog /var/log/httpd/www2.err

CustomLog /var/log/httpd/www2.access common

</VirtualHost>

SSL.conf配置文件:

LoadModule ssl_module modules/mod_ssl.so

Listen 443

SSLPassPhraseDialog  builtin

SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)

SSLSessionCacheTimeout  300

SSLMutex default

SSLRandomSeed startup file:/dev/urandom  256

SSLRandomSeed connect builtin

SSLCryptoDevice builtin

<VirtualHost _default_:443>

DocumentRoot "/web/vhosts/www1” ##定义虚拟主机的主页位置,同80端口的同一域名可以不同网页,实现不同网站的访问效果。

ServerName www1.dtedu.com:443 ##证书名称要和这里保持一致

ErrorLog logs/ssl_error_log

TransferLog logs/ssl_access_log

LogLevel warn

SSLEngine on ##启动ssl服务

SSLProtocol all -SSLv2 ##ssl协议支持所有版本,除去sslv2

SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES ##支持的加密算法,!表示不支持

SSLCertificateFile /etc/httpd/ssl/httpd.crt ##证书文件位置

SSLCertificateKeyFile /etc/httpd/ssl/httpd.key ##私钥文件位置

<Files ~ "\.(cgi|shtml|phtml|php3?)$">

SSLOptions +StdEnvVars

</Files>

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

SSLOptions +StdEnvVars

</Directory>

SetEnvIf User-Agent ".*MSIE.*" \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

curl命令讲解

常用参数

-I:只显示响应报文信息

-u username:password:输入用户名密码,用于认证。

-e “path”:用于指定从哪个地址跳转到此为止,通常用于欺骗httpd的访问日志。

-A:指定浏览器名称

I/O模型

产生的原因:

CPU处理速度远远大于I/O设备,CPU要实现高效使用,采用的方法就是多进程、多线程,内存高高效率采用的是DMA,缓存,I/O高效率采用的就是阻塞和非阻塞,同步、异步。

1、阻塞I/O(磁盘访问)

指进程访问数据的时候,如果数据处于就绪状态,就执行,如果未就绪,就等待。

2、非阻塞I/O(网络传输)

指进程访问数据的时候,如果数据处于就绪状态,就执行,如果未就绪,就处理其他事物,不等待。

3、同步I/O

指访问数据的机制,主动请求并等待I/O操作完成的方式,当数据就绪后在读写的时候必须阻塞。

4、异步I/O

指主动请求数据后可以继续处理其他事物,随后等I/O操作完毕的通知,这可以使进程在数据读写的时候不发生阻塞。

消息通知机制

产生的原因:

由于I/O模型存在阻塞,进程状态存在就绪、等待等多个状态,当要实现高效率常常是多个进程同时进行。所以如何知道那个进程处于就绪状态呢?于是产生了通知机制。

1、忙等待

什么也不干,就等待进程进入就绪状态。

2、多路I/O通知机制

同样是一种非阻塞机制,多个进程同时执行,并将就绪结果放到指定队列中,方便查询。

2.1select

单个进程最大监视的文件描述符(I/O状态)是1024个,线性扫描(全部询问)开销大,水平触发

2.2poll

对select()有一定提升,没有最大描述符限制,水平触发

2.3SIGIO

相对于select、poll最大的不同是,select、pool是通知描述符的就绪状态,直到我们操作他们之前,总是产生通知消息。而SIGIO只通知一次。也称为边缘触发。

此触发方式是linux2.4下性能最好的多路I/O就绪通知方法。

2.4epoll

linux2.6下性能最好的多路I/O就绪通知机制。支持水平触发和边缘触发,使用了内存映射,减少了系统调用的开销,(磁盘到内核缓冲区,再到进程缓冲区的过程)

时间: 2024-10-13 22:46:10

马哥linux高薪中级-web服务器(续二)的相关文章

马哥linux高薪中级-web服务器(续一)

2.工作模式切换 httpd支持三种模型,即perfork.worker.event模型. 三种模型的启动方法是不同的,perfork是默认的启动模型,通过httpd命令即可启动,可以通过rpm -ql |grep bin来看到有httpd.http.worker.http.event三个命令. 一般来说,apache的2.2版本之前并不支持event模型,在2.4以后才开始支持event模型. 2.1.修改配置文件 [[email protected] ~]# vi /etc/sysconfi

马哥linux高薪中级-web服务器

第一章  HTTP概述 一.概述 1.什么是HTTP? HTTP:hypertext transfer protocl 超文本链接协议,所谓超链接就是将不同位置的超文本文件HTML进行快速的查找并读取.HTTP协议是一个规范,可以实现不同区域的用户直接可以实现超文本连接.实现的条件是tcp/ip协议.DNS服务.URL地址. 最初http协议的特点 1.无状态连接,不能够反映出连接时客户端的登录状态. 2.短连接,完成一次客户端请求报文就断开连接. 3.非安全传输. 4.一条链路上只发送一个请求

马哥linux高薪中级-DNS

第一章 简介 一.DNS domain name server,用来将计算机名称或者域名解析成ip地址的服务协议. 用户在使用域名访问时会先通过DNS服务请求域名对应的ip地址,然后缓存下来,然后才通过ip地址进行通信. 最初域名解析是通过HOSTS文件来静态绑定的. DNS缓存的时间期限是由服务器端决定的,然后客户端在时间到期后进行更新缓存信息. 二.DNS服务器角色类型: 缓存DNS服务器:只处理请求并递归查找,本身并不解析域名.可以直接安装caching-nameserver来完成,也可以

马哥linux高薪中级-POSTFIX邮件服务(四)

安装配置httpd文件 由于extmail要进行本地邮件的投递操作,所以必须以邮件投递代理所认可的用户身份运行httpd服务器.本利中打开了httpd服务器的suexec功能,所以使用一下方法来实现虚拟主机运行身份的指定. <VirtualHost *:8081> ServerName mail.dtedugongbing.com DocumentRoot /var/www/extsuite/extmail/html/ ScriptAlias /extmail/cgi /var/www/ext

马哥linux高薪中级-POSTFIX邮件服务

第一章.概述 1.邮件服务通常使用什么协议? SMTP:简单邮件传输协议,只实现传输功能,没有索引.加密邮件功能. ESMTP,SMTP的升级版本,可以实现身份检测功能了. POP3::post office protocol 邮局协议 IMAP4:互联网访问协议 SASL:邮件认证协议 2.邮件服务的发展简史. 早期unix之间的通信协议是UUCP协议(unix to unix copy,主机间复制文件协议).后来出现了smtp,smtp具有路由功能,可以依据邮件的目的地址来通过邮件中继器进行

马哥linux高薪中级-POSTFIX邮件服务(二)

四.POSTFIX+CYRUS-SASL 结合实现用户身份认证 1.cyrus-SASL简介 Cyrus SASL介绍(翻译) 2.配置内容简介: postfix-->/var/lib/sasl2/smtpd.conf pwcheck_method : saslauthd math_list :PLAIN LOGIN 3.服务脚本:saslauthd 1.启动SASL 服务 /etc/init.d/saslauthd [[email protected] ~]# chkconfig --add

马哥linux高薪中级-POSTFIX邮件服务(三)

五.邮件服务器的虚拟域 简介 虚拟域功能类似于httpd的虚拟主机服务,同样支持一台物理主机服务器创建和支持多个虚拟域名,并为其提供邮件服务,实现此功能需要涉及到mydestination.mydomain.myorigin几个参数. 当一台服务器运行多个虚拟域的情况下,势必会给查询带来负担,这样就需要一个快速的检索数据库,常用的有hash.ladp.mysql等,hash我们在前面已经讲过了,就是通过postmap来生成需要的索引文件*.db.确定是不灵活,当账户信息文件需要经常变化的时候,就

马哥LINUX高薪LINUX高薪就业入门教程-虚拟机篇幅-学习笔记-11

课程名称:马哥Linux高薪就业入门-安装学习VMware Workstation9-1 课程主要内容:虚拟机安装及OS系统配置说明 虚拟机硬件配置: CPU,Memory,I/O(disk,Ethercard) 虚拟机关键字: 1.disk image file(磁盘映像文件) 2.Sparse(稀疏格式) 3.CPU超线程 虚拟机使用技巧: 1.虚拟机磁盘建议放置空间大,分区编号越小性能越好,对于不常用的文件就放到最外层的: 2.CPU一级缓存最高,二级缓存价格次之,一级缓存容量翻倍基本价格

马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文件系统管理详解之三10_05_脚本编程之八 脚本完成磁盘分区格式化20_01_DNS主从复制及区域传送04_04_grep及正则表达式01_03_操作系统基础08_02_bash脚本编程之七 case语句及脚本选项进阶14_03_bash脚本编程之十一(Linux启动流程之三) SysV服务脚本01