linux运维架构-Apache的讲解

Apache
Nginx相对于Apache的优势:
1.轻量级,采用C进行编写,同样的web服务,会占用更少的内存及资源
2.抗并发,nginx以epoll and kqueue作为开发模型,处理请求是异步非阻塞的,多个连接对应一个进程,负载能力比apache高很多,
而apache则是同步多进程模型,只能一个连接对应一个进程,当压力过大时,它是会被阻塞型的。
在高并发下nginx能保持低资源低消耗高性能 ,而apache在PHP处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。
3.设计高度模块化,编写模块相对简单
4.配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂 ,重启的时候发现配置出错了,会很崩溃
5.一般用于处理静态文件,静态处理性能比apache高三倍以上
6.作为负载均衡服务器,支持7层负载均衡
7.本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器
8.nginx启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,
支持热部署,比如:实现不间断服务的情况下进行软件版本的升级与版本的回退
9.社区活跃,各种高性能模块出品迅速
Apache相对于Nginx的优势:
1.apache的rewrite比nginx强大,在rewrite频繁的情况下,用apache
2.apache发展到现在,模块超多,基本想到的都可以找到
3.apache更为成熟,少bug ,nginx的bug相对较多
4.apache超稳定,一个进程死掉时,会影响到多个用户的使用,稳定性差
5.apache对PHP支持比较简单,nginx需要配合其他后端用
6.apache在处理动态请求有优势,nginx在这方面是鸡肋,一般动态请求要apache去做,nginx适合静态和反向。
7.apache仍然是目前的主流,拥有丰富的特性,成熟的技术和开发社区
总结:
两者最核心的区别在于:
Apache是同步多进程模型,一个连接对应一个进程,而Nginx是异步的,多个连接(万级别)可以对应一个进程。
适用场景:
一般来说,需要性能的web服务,用Nginx;如果不需要性能只求稳定,更考虑Apache;
Nginx处理放静态内容比Apache要好,特别是在可承受压力、带宽及资源消耗上都要优于Apache。
所以更为通用的方案是,前端Nginx抗并发,后端Apache集群,配合起来会更好。

配置
<VirtualHost *:80>
ServerName www.zhchzh.com
DocumentRoot /data/www
<Directory "/data/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted //访问权限
</Directory>
</VirtualHost>
1、vim /etc/hosts文件 编写文件 192.168.x.x www.zhchzh.com
mkdir -p /data/www
vi index.html
如若不能访问
sudo setenforce 0 设置为0
sudo setenforce 0|| 1 设置成强制模式和宽松模式
cat /etc/selinux/config

开启伪静态
加载模块说明
LoadModule auth_basic_module modules/mod_auth_basic.so #基本认证模块
LoadModule auth_digest_module modules/mod_auth_digest.so #使用MD5的用户验证模块
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 #基于主机名(或IP)的组授权
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 #LDAP提供其它LADP的连接接和缓存服务模块
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so #允许使用一个LDAP的目录来存放HTTP基本授权文件
LoadModule include_module modules/mod_include.so #服务器端解析HTML语法的模块
LoadModule log_config_module modules/mod_log_config.so #记录服务器请求日志
LoadModule logio_module modules/mod_logio.so #记录每个请求的I/O字节数
LoadModule env_module modules/mod_env.so #设置传递给CGI脚本和SSI页面的环境?
LoadModule ext_filter_module modules/mod_ext_filter.so #在递交给客户端以前通过外部程序发送相应本体
LoadModule mime_magic_module modules/mod_mime_magic.so #通过查看一个文件的一些内容判断MIME类别
LoadModule expires_module modules/mod_expires.so #根据用户的特别设定来生成失效和隐藏控制的http头信息
LoadModule deflate_module modules/mod_deflate.so #传送给客户端以前压缩数据
LoadModule headers_module modules/mod_headers.so #定制响应和回复的HTTP头的内容
LoadModule usertrack_module modules/mod_usertrack.so #在一个站点上跟踪用户的登录信息
LoadModule setenvif_module modules/mod_setenvif.so #允许经过客户编码请求来设定环境变量
LoadModule mime_module modules/mod_mime.so #通过文件的一些属性判读MIME类型
LoadModule dav_module modules/mod_dav.so #基于WEB的创作和版本?
LoadModule status_module modules/mod_status.so #提供服务器运行信息
LoadModule autoindex_module modules/mod_autoindex.so #自动列出一个目录的索引表(类似于UNIX上的ls和DOS下的dir)
LoadModule info_module modules/mod_info.so #提供服务配置的一个综合概况
LoadModule dav_fs_module modules/mod_dav_fs.so #为mod_dav提供文件系统支持
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 #提供了基于请求和媒体类型的CGI脚本执行的支持
LoadModule speling_module modules/mod_speling.so #尝试纠正用户输入错误的网址
LoadModule userdir_module modules/mod_userdir.so #用户特定目录
LoadModule alias_module modules/mod_alias.so #提供主机文件系统不同部分的文件树映射为URL
LoadModule rewrite_module modules/mod_rewrite.so #提供在运行中基于规则的地址重写的支持
LoadModule proxy_module modules/mod_proxy.so #基于HTTP1.1协议的网关或代理服务器
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #负载均衡的mod_proxy拓展
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #为mod_proxy提供的ftp支持模块
LoadModule proxy_http_module modules/mod_proxy_http.so #为mod_proxy提供的http支持模块
LoadModule proxy_connect_module modules/mod_proxy_connect.so #mod_proxy的连接处理拓展模块
LoadModule cache_module modules/mod_cache.so #目录隐藏在URL外?
LoadModule suexec_module modules/mod_suexec.so #允许CGI脚本使用特定的用户和组运行
LoadModule disk_cache_module modules/mod_disk_cache.so #管理内容隐藏存放来适合URL的工具?
LoadModule file_cache_module modules/mod_file_cache.so #在内存中缓存一个文件列表
LoadModule mem_cache_module modules/mod_mem_cache.so #隐藏内容于URL
LoadModule cgi_module modules/mod_cgi.so #执行CGI脚本
vi /etc/apace/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
<VirtualHost *:80>
ServerName www.zhchzh.com
DocumentRoot /data/www
<Directory "/data/www">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted //访问权限
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*).zhang$ index.html
</IfModule>
</Directory>
</VirtualHost>
浙公网安备 33010602011771号