linux服务器配置实例<10>---配置web服务器

配置web服务器

.Web 服务器简介 :
5.Apache 的性能 :web 服务器的功能和运行性能是最重要的因素 .Apache 的众多特性保证了它可以高效而且稳定的运行
DOS ,动态共享对象,允许运行时动态装载模块、采用预生成技术提高响应速度、运行在几乎所有的计算机平台、支持最新的 HTTP1.1 协议、简单而强有力的基于文件的配置、支持虚拟主机、支持 HTTP 认证、集成了代理服务器、且有可定制的服务器日志、支持安全 Socket (SSL) 、用户会话过程的跟踪能力、支持通用网关接口 CGI 、集成 Perl 脚本编程语言、支持服务器端包含命令 (SSI) 、支持 FastCGI 、支持 PHP 、支持 Java Servlets 、支持第三方软件开发商提供的大量功能模块
6.Apache 的三种运行方式: Multi-processing modules
预派生 (Profork): 首先启动一个父进程,然后创建并启动一定数量的子进程监听客户的请求,父进程始终监控子进程,启动时自动生成 8 个子进程,最小空闲进程 5
工作者 (Worker MPM): 此模块是混合使用进和线程的运行模型,首先启动一个父进程,然后创建并启动一定数量的子进程 ,每个子进程都创建 并启动相同数量的线程,由线程监听客户的请求,父进程始终监控子进程,当没有足够的空闲线程为客户服务时,父进程就会创建并运行新的子进程
独立子进程 (Perchild): 混合使用进程和线程的运行模式,每个子进程都可以创建指定数量的线程,当服务器上负载增加后, Apache 不会创建新的子进程,而是在当前的子进程之一上创建新的线程为客户提供服务,具有高扩展性,低可靠性
.Apache2.0 的模块 : 仍旧使用模块的方式运行, Apache 由内核、标准模块和第三方提供的模块 3 个层次组成
.Apache 的安装和启动 :
1.Apache 的安装
2. 启动 Apache
#service httpd restart
#pstree|grep httpd
#apachect1 configtest|httpd -t 检测配置文件语法的正确性
#service httpd status
#ntsysv
#apachect configtest|httpd -t 检查配置文件语法的正确性
#apachectl -v 查看编译配置参数
#apachectl -l 查看已经被编译的模块
mod_so.c 表示当前的 Apache 支持 Dynamic Shared Objects(DSO), 即用户可以在不重新编译 Apache 的情况下使用 Apache eXenSion 编译的第三方模块
prefork.c 表示 Red Hat 发布的 Apache 是使用预派生 MPM 模式运行的
3.Apache 的基本配置
KeepAlive on 使用保连接的功能,即一次请求连接能响应多个文件
MaxClients 150 限制同一时间的连接数不能超过 150
ServerAdmin root@localhost 设置 Apache 服务器管理员的 E-mail 地址
ServerName [url]www.abc.com:80[/url] Apache 服务器需要指向本身的连接时使用
DirectoryIndex index.html index.html.var 当访问服务器时依次查找页面 index.html index.html.var
IndexOptions 可以在此指令后添加 FolderFirst 表示让目录列有前面
4. 分割配置任务
使用 Inclde 指令:例如可以将所与虚拟主机配置相关的配置单独存成一个配置文件,然后在主配置文件中将其包含进来
使用 .htaccess 文件:用于改变主配置文件中的配置,只能设置对目录的访问控制,它可以覆盖主配置文件中的配置,而 Include 只是简单的包含
(1). 何时使用 .htaccess 不重新启动服务器的情况下改变服务器配置
(2). 步骤 :
首先在主配置文件中启用并控制对 .htaccess 文件的使用
然后在需要盖主配置文件的目录下生成 .htaccess 文件
(3). 启用并控制使用 .htaccess 文件
设置文件名称
AcessFileName .htaccess
<Files ~".\.htaccess">
    Order allow,deny
    Deny from all
</files>
1 .htaccess 文件的访问控制
#cd /var/www/html #mkdir private #cd private #touch test
修改主配置文件 #vi /etc/httpd/conf/httpd.conf <Directory "/var/www/html/private">AllowOverride Options</Directory>
#service httpd restart
#vi /var/www/html/private/.htaccess 添加 Options -Indexes
2 配置每个用户的 Web 站点
配置每个用户的 Web 站点的意图是使在安装了 Apache 的本地计算机上,拥有用户帐号的每个用户都能够架设自己单独的 Web 站点
步骤 :
修改主配置文件启用每个用户的 Web 站点配置
修改主配置文件为每个用户的 Web 站点目录配置访问控制
vi /etc/httpd/conf/httpd.conf
<IFModule mod_userdir.c>
  UserDir disable root
  UserDir public_html
</IfModule>
<Directory /home/*/public_html>
  AllowOverride FileInfo Authconfig Limit
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  <Limit GET POST OPTIONS>
  Order deny,allow
  Deny from all 
  </LimitExcept>
</Directory>
#su user1
#cd
#mkdir public_html
#chmod 711 /home/user1
创建 Index.html 的内容
访问自己的主页
[url]http://IP[/url] 地址或 FQDN/~ 用户名
3 配置虚拟主机
在一台 WEB 服务器上,可以为多个单独域名提供 Web 服务,对于 ISP 的意义重大,因为使用独立的域名和根网址更为正式,易为众人接受 .
基于 IP 地址的虚拟主机:使用相同的 IP 地址,不同的端品号。不同的 IP 地址,相同的端口号
基于名字的虚拟主机:不同的主机头,一个 IP 地址映射多个域名。
配置不同 IP 地址的虚拟主机:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
#vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
#/etc/rc.d/init.d/network restart
#cd /etc/httpd
#vi vhost-conf.d/ip-vhost34.conf
<VirtualHost 192.168.1.57:80>
   ServerAdmin [email protected]
   DocumentRoot /var/www/www1
   DirectoryIndex index.html
   ServerName www1.abc.com:80
</VirtualHost>
<VirtualHost 192.168.1.57:80>
   ServerAdmin [email protected]
   DocumentRoot /var/www/www1
   DirectoryIndex index.html
   ServerName www1.abc.com:80
</VirtualHost>
创建默认文档
#echo "Include vhost-conf.d/*.conf">>conf/httpd.conf
#vi /etc/httpd/conf/httpd.conf
 <Virtualhost 192.168.1.57:80>
       Server Admin [email protected]
       DocumentRoot /var/www/html
       DirectoryIndex index.html
       ServerName  192.168.1.57
 </VirtualHost>
 <VirtualHost 192.168.1.77:80>
       Server Admin [email protected]
       DocumentRoot /var/www/www1
       DirectoryIndex index.html
       ServerName 192.168.1.77
 </VirtualHost>
4: 配置基于端口的虚拟主机 , 即相同 IP 地址不同端口号的虚拟主机
#vi vhost-conf.d/ip-vhost12.conf
listen 8080
listen 6666
<Virtualhost 192.168.1.57:8080>
       ServerAdmin [email protected]
       DocumentRoot /var/www/www1
       DirectoryIndex index.html
       ServerName  rhl9.abc.com:8080
</VirtualHost>
<VirtualHost 192.168.1.57:6666>
       ServerAdmin [email protected]
       DocumentRoot /var/www/www2
       DirectoryIndex index.html
       ServerName rhl9.abc.com:6666
</VirtualHost>
创建默认文档
#echo "Include vhost-conf.d/*.conf">>conf/httpd.conf
5: 配置基于主机头的虚拟主机
配置 DNS, 编辑正向解析数据库文件
www 1 IN A 192.168.1.57
www 2 IN A 192.168.1.57
#vi vhost-conf.d/n-vhost.conf
NameVirtualHost 192.168.1.57
<Virtualhost 192.168.1.57:80>
       ServerAdmin [email protected]
       DocumentRoot /var/www/www1
       DirectoryIndex index.html
       ServerName  www1.abc.com
</VirtualHost>
<VirtualHost 192.168.1.57:80>
       ServerAdmin [email protected]
       DocumentRoot /var/www/www2
       DirectoryIndex index.html
       ServerName www2.abc.com
</VirtualHost>
创建默认文档
#echo "Incaf.d/*.conf">>conf/httpd.conf
6: 访问控制
访问控制指令
Order   deny,allow 用于指定执行允许访问规则和执行拒绝访问的先后顺序
Deny all 表示所有客户 |abc.com 域名表示域内的所有客户 |IP 地址,可以指定完整的 IP 地址或部分 IP 地址 |192.168.1.0/255.255.255.0|192.168.1.0/24 定义拒绝访问列表
Allow 定义允许访问列表
<Directory /var/www/html/private>
   Order deny,allow
   deny from all
   allow from 192.168.1.57
</Directory>
7: 认证和授权 . 两种认证类,基本认证 Basic 和摘要 Digest 认证,摘要认证比基本认证更加安全,认证指令既可以出现在主配置文件的 Directory 容器中,也可以出现在 ./htaccess 文件中
授权 , 为指定用户或组进行授权,授权指令为 Require
#vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/private">
   AllowOverride None 不使用 .htaccess 文件
  AuthType Basic 指定基本认证方式
  AuthName "abc.com" 指定认证领域名称
   AuthUserFile /var/www/passwd/abc.com 指定认证口令的存放位置
  require valid-user
</Directory>
创建认证口令文件,并添加两个用户
#cd /var/www/passwd
#htpasswd -c jamond osmond
#chown apache.apache jamond 由于 Apache 的子进程以 apache 用户运行
#service httpd restart
 

你可能感兴趣的:(linux,职场,休闲,linux服务器配置实例)