linux运维架构-Apache的讲解

image-20211204224606356

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集群,配合起来会更好。

image-20211205204156043

配置

<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

image-20211205205206781

开启伪静态

加载模块说明

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>
posted @ 2021-12-05 21:10  张长志的博客  阅读(219)  评论(0)    收藏  举报