Web服务器

最常用的Web服务器是Apache和Microsoft的Internet信息服务器(Internet Information Services,IIS)
Apache HTTP Server(简称Apache)是一个开放源码的Web服务器软件。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。(Linux是一套免费使用和自由传播的类Unix操作系统。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统)
 
mpm_prefork模块主要应用于Unix/Linux平台的Apache服务器,其主要工作方式是:当Apache服务器启动后,mpm_prefork模块会预先创建多个子进程(默认为5个),当接收到客户端的请求后,mpm_prefork模块再将请求转交给子进程处理,并且每个子进程同时只能用于处理单个请求。如果当前的请求数将超过预先创建的子进程数时,mpm_prefork模块就会创建新的子进程来处理额外的请求。Apache总是试图保持一些备用的或者是空闲的子进程用于迎接即将到来的请求。这样客户端的请求就不需要在接收后等候子进程的产生。
 
当前可以替代Apache的几个热门Web应用服务器:Lighttpd,Nginx,kangle,Boa,Jigsaw
 
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端
 
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置反向代理节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
 
如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当客户机向站点提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器。
 
Mac os 10.11版本Apache服务配置
 
1.环境的搭建需要预装 apache 和php
 
apache版本: sudo apachectl -v 或者  httpd -v
开启apache服务 sudo apachectl start 
停止apache服务 sudo apachectl stop 
重启服务 sudo apachectl restart 
 手动打开apache服务后,在浏览器输入localhost,将看到如下:
程序的根目录在/Library/WebServer/Documents/ 下,这个It works 就是里面的info.php打印出来的。下面介绍如何将apache的这个默认目录更改到用户目录下。

2.进入apache根目录(mac下打开finder,快捷键command+shift+g,输入/etc/apache2),打开配置文件httpd.conf (其他版本可能是apache2.conf)

3.打开如下模块

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_connect_module modules/mod_proxy_connect.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so,#去掉注释

4.添加这一句,让htm执行php

AddType application/x-httpd-php .html .htm .php .phtml .shtml

5.以下模块默认应该已经打开,请再次确认已经打开

LoadModule deflate_module modules/mod_deflate.so
LoadModule expires_module modules/mod_expires.so
LoadModule include_module modules/mod_include.so
LoadModule rewrite_module modules/mod_rewrite.so

6.为了提高处理请求的性能,请开启keep-alive

KeepAlive On  #将Off 改为 On

7.将shtml支持打开(开启shtml主要是为了多人协作时更加方便)

AddType text/html .shtmlAddOutputFilter INCLUDES .shtml

8.将虚机的vhost文件包含进来:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf    #去掉注释

9.添加虚机的配置,打开extra/httpd-vhosts.conf,将下面代码拷贝进去,并根据注释提示的内容,自行修改。


<VirtualHost *:80>
    DocumentRoot "/Users/chen/Documents/workspace/"
    ServerName dev.17zuoye.com
    ErrorLog "/private/var/log/apache2/localhost-error_log"
    CustomLog "/private/var/log/apache2/localhost-access_log" common
    <Directory /Users/chen/Documents/workspace/> 
        Options All 
        Allow from All 
        AllowOverride All 
    </Directory>
</VirtualHost> 

10.确保VirtualHost已经打开,这个开关通常在extra/httpd-vhost.conf中

NameVirtualHost *:80
  • 重启apache即可,mac下重启apache命令:sudo apachectl restart

  • 最后一步就是配置本地host与serverName对应。比如127.0.0.1 w.waptest.taobao.com

  • 那么就可以直接访问 w.waptest.taobao.com 得到本地文件访问啦

  • 如果提示You don't have permission to access /index.html on this server.” 打开apache配置文件httpd.conf,找到这么一段:

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    deny from all
    Satisfy all

    然后试着把deny from all中的deny改成了allow,保存后重起了apache,然后再一测试我的网页,哈哈!居然问题就出在这,访问测试网站完全正常了

  • Mac 环境下,打开终端并切换到 src 目录,目录权限必须可写入,执行命令:  sudo chmod -R 0777 ./src

 
 
 
原文地址:https://www.cnblogs.com/chenlogin/p/4746586.html