当前位置: 首页 > backend >正文

Linux运维新手的修炼手扎之第19天

Apache 和 Nginx基础

1 apache 
查看帮助:[root@rocky9-12 ~]# man apachectl
root@ubuntu24-13:~# apachectl --help
配置检测:apachectl -t

全局配置(最小化):# 定义Apache服务器的根目录,所有相对路径都基于此目录ServerRoot "/etc/httpd"# 指定Apache监听80端口(HTTP默认端口)Listen 80# 设置Apache子进程运行的用户和组(通常使用专用低权限账户)User apacheGroup apache# 设置服务器的主机名和端口,用于解决启动警告和重定向ServerName www.example.com:80# 设置网站文件的根目录路径DocumentRoot "/var/www/html"# 对/var/www/html目录设置访问控制规则<Directory "/var/www/html"># 允许跟随符号链接,但禁止目录列表(Indexes)Options FollowSymLinks   # 禁止使用.htaccess文件覆盖配置(提升性能)AllowOverride None  # 允许所有客户端访问该目录Require all granted</Directory>#定义了一个名为 "combined" 的日志格式LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""
combined# 指定错误日志文件路径ErrorLog "/var/log/httpd/error_log"# 设置错误日志记录级别为warn(记录警告及以上级别的错误)LogLevel warn# 定义访问日志路径和格式(combined格式记录完整访问信息)CustomLog "/var/log/httpd/access_log" combined# 设置最大并发连接数(超过此值新连接需等待)MaxRequestWorkers 150# 设置请求超时时间为60秒(包括接收和发送时间)Timeout 60# 控制服务器响应头信息(Prod表示只显示"Apache")ServerTokens Prod# 关闭错误页面的服务器版本信息显示ServerSignature Off	
虚拟主机配置<virtualhost *:10086># 设置网站文件的根目录路径DocumentRoot /data/server/apache/web1/# 定制的路径必须使用Directory配置段<Directory /data/server/apache/web1/>Require all granted  # 允许所有访问</Directory></virtualhost>apachectl -t;systemctl restart apache2;netstat -tnulp | grep 10086;curl 10.0.0.13:10086

 模块配置
ubuntu: apachectl -M
rocky: httpd -M
在 Apache HTTP 服务器中,"先 load 加载模块,后应用配置 conf",因为Apache的许多功能依赖于模块,如果模块没有先加载,相关的配置指令就无法生效。

2 IO类型:阻塞[全程阻塞]、非阻塞[需轮询所有FD]、多路复用[同时监控多个FD,仅处理就绪的FD]、信号驱动、异步[完全由内核处理]
同步:每一步任务执行,都必须有落地结果,没有落地结果,下一个任务不执行
异步:每一步任务执行,不需要等待执行落地结果,下一个任务随时执行
任务执行,等待数据的过程中不做任何的事情 -- 当前程序处于阻塞的状态
任务执行,等待数据的过程中的状态,同时做其他的任何的事情 -- 当前程序处于非阻塞状态

3 nginx
定位:web、反向代理[负载均衡]、缓存、邮件
架构:master+worker[系统总并发承载能力=worker数量*每个worker最大连接数]

        安装:rocky--yum install -y epel-release;yum install -y nginx
ubuntu--apt update;apt install -y nginx 

 

         配置结构:全局、event配置、http配置、server配置、location配置

http://www.xdnf.cn/news/15559.html

相关文章:

  • 【从零开始学习大模型】什么是MCP协议
  • PostGres超过最大连接数报错
  • 多级缓存架构与热点探测系统核心技术解析
  • AI时代基础入门
  • 测试学习之——Pytest Day2
  • 深入理解 Kafka 核心:主题、分区与副本的协同机制
  • Scalefusion 与 EasyControl 对比:轻量级方案与全功能 IoT MDM 的深度碰撞
  • spring容器的bean是单例还是多例的?线程安全吗?
  • AI编程神器 Claude Code 安装及使用体验
  • SQLSERVER清理日志
  • 【28】MFC入门到精通——MFC串口 Combobox 控件实现串口号
  • Python面向对象编程(OOP)详解:通俗易懂的全面指南
  • HTTP vs HTTPS
  • Linux驱动基础:阻塞、休眠、poll、异步通知
  • 探究Netty 4.2.x版本
  • 增程式汽车底盘设计cad【9张】三维图+设计说明书
  • 单列集合顶层接口Collection
  • 医疗AI“全栈原生态“系统设计路径分析
  • 【游戏引擎之路】登神长阶(十八):3天制作Galgame引擎《Galplayer》——无敌之道心
  • 用AI做带货视频评论分析进阶提分【Datawhale AI 夏令营】
  • LLM大语言模型不适合统计算数,可以让大模型根据数据自己建表、插入数据、编写查询sql统计
  • 加速度传感器的用途与应用
  • es启动问题解决
  • 【C#】实体类定义的是long和值识别到的是Int64,实体类反射容易出现Object does not match target type
  • 高性能架构模式——高性能NoSQL
  • 【MySQL基础】MySQL事务详解:原理、特性与实战应用
  • 用PyTorch手写透视变换
  • 嵌入式学习-PyTorch(5)-day22
  • Towards Low Light Enhancement with RAW Images 论文阅读
  • ASP.NET Core Hosting Bundle