web网站学习 apache (一)

2023-09-15 14:06:10

学习内容

web 网站学习
apache
nginx
tomcat

apache概述

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

apache用户
# tail -1 /etc/passwd
apache进程
# ps aux | grep httpd
其中root运行的是主进程,apache运行的是子进程
主进程的id保存在/etc/httpd/run/httpd.pid文件内
真正来处理web请求的是子进程,主进程用来管理子进程
apache模块
# httpd -M
apache是一个模块化设计的服务,核心只包含主要功能,扩展功能通过模块实现
不同模块可以被金泰的编译进程序,也可以动态建在
模块的动态加载通过DSO(Dynamic shared Object)实现

apache模式

Apache一共有3种稳定的MPM模式(MPM:多进程处理模块),它们分别是 prefork、worker、event

perfork 预派生,事先生成几个工作进程,每个进程对应一个线程
特点:超级稳定,不支持高并发

worker 工作模式,每个进程对应多个线程,支持高并发

event 事件模式 每个进程对应多个线程,其中有一个线程专门用于监督其他线程,支持更高的并发

配置文件详解

1.主配置文件位置
/etc/httpd/conf/httpd.conf
检测配置是否有问题 
# httpd -t
修改后必须重启
# systemctl restart httpd
2.配置详解
serverroot  服务所在目录的路径
listen      监听端口
include     导入配置文件
    include conf.modules.d/*.conf
includeoption 导入辅助配置文件
            conf.d/*.conf
ifmodule 以特定模块存在与否为条件的指令
files     包含适用于匹配文件名的指令    拒绝访问
errorlog  错误日志位置
loglevel  错误日志级别

配置实战

基于域名的虚拟主机
一、基于域名的虚拟主机
虚拟主机(重点)
虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式。
虚拟主机的分类: 
基于 IP 的虚拟主机:一台服务器,多个 ip,搭建多个网站 
基于端口的虚拟主机:一台服务器,一个 ip,搭建多个网站,每个网络使用不同端口访问 
root@hd1 conf.d]# cat /etc/httpd/conf/httpd.conf|grep -i  ^listen
Listen 79
Listen 81
基于域名的虚拟主机:一台服务器,一个 ip,搭建多个网站,每个网站使用不同域名访问 
Apache 实验
启动服务,并设置开机启动
[root@hd1 ~]# systemctl start httpd 
[root@hd1 ~]# systemctl enable httpd 
查看相应的端口是否起来了?
[root@hd1 ~]# ss -naput |grep :80
tcp    LISTEN     0      128      :::80   
1. 域名解析:准备两个域名
www.sohu.com 
www.sina.com 
#使用本地 hosts 文件进行解析
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomai
::1       localhost localhost.localdomai
192.168.1.11 www.hd1.com
192.168.1.11 www.soudu.com
192.168.1.11 www.sina.com
2. 网站主页目录规划 
在/var/www/html/目录下分别创建 sohu 和 sina 两个目录
并在新建目录内创建 index.html 文件(分别创建不一样的内容
[root@hd1 html]# cd sohu/
[root@hd1 sohu]# echo sohu > index.html
[root@hd1 html]# cd sina/
[root@hd1 sohu]# echo sina > index.html
修改主配置文件开启文件关联
[root@hd1 conf]# vi httpd.conf
IncludeOptional conf.d/*.conf  #查看此行是否被注释,需要打开
编辑子配置文件,编写虚拟主机标签 
[root@hd1 conf.d]# cat httpd-vhosts.conf 
[root@hd1 conf.d]# cat vhosts.conf 
<Directory "/var/www/html/sina"> 
 	Options Indexes FollowSymLinks 
 	AllowOverride None 
 	Require all granted 
  </Directory>   
<VirtualHost 192.168.1.11:80> 
   ServerAdmin webmaster@sina.com 
   DocumentRoot "/var/www/html/sina"
   ServerName www.sina.com
    ErrorLog "logs/sina-error_log"
   CustomLog "logs/sina-access_log" common
</VirtualHost>
<Directory "/var/www/html/sohu"> 
 	Options Indexes FollowSymLinks 
 	AllowOverride None 
 	Require all granted 
  </Directory>   
  <VirtualHost 192.168.1.11:80>
   ServerAdmin webmaster@sohu.com
   DocumentRoot "/var/www/html/sohu"
   ServerName www.sohu.com
    ErrorLog "logs/sohu-error_log"
   CustomLog "logs/sohu-access_log" common
</VirtualHost>
重启服务,验证结果 
[root@hd1 conf.d]# systemctl restart httpd 
Windows 下:浏览器下输入两个不同的域名验证网页内容(提前修改 windows 的 hosts 文件)
基于端口实现
只需要修改
vhosts.conf 中的下面两行
<VirtualHost 192.168.1.11:79> 
<VirtualHost 192.168.1.11:81>
修改配置文件中/etc/httpd/conf/httpd.conf
Listen  79
Listen  81
测试curl 192.168.1.11:79
测试curl 192.168.1.11:81

总结题

跳转分配301永久跳转和302临时跳转
# yum install -y httpd
# httpd -V |grep Server   查看
配置服务路径
服务目录   /etc/httpd
配置文件   /etc/httpd/conf/httpd.conf
默认网站数据目录 /var/www/html
访问日志   /var/log/httpd/access_log
错误日志   /var/log/httpd/error_log
1.apache的主配置文件
/etc/httpd/conf/httpd.conf
2.apache会自动生成几个进程
跟cpu的核心数量有关系,一般是跟cpu的数量一致
3.httpd在应用层
4.重启网站服务
systemctl restart httpd 
在生产环境下,不可以随便使用这个命令
6.虚拟主机有哪几种配置方式
基于ip,基于域名,基于端口
7.怎么查看httpd服务的访问日志路径
 ①使用rpm -ql httpd | grep log 
 ②到配置文件中查看配置路径
更多推荐

docker学习2-基本指令

1、帮助命令dockerversion#版本信息dockerinfo#显示docker系统信息,镜像容器数量docker命令--help#帮助命令2、镜像命令dockerimages查看所有本地主机上的镜像dockerimages-a列出所有镜像dockerimages-q只显示镜像的iddockersearch+镜像

android可见即可说实现方案

依赖于科大讯飞的asr识别能力,使用Android无障碍服务获取页面文本作为热词,注册到讯飞api,注册过后语音识别到热词的asr返回,利用WindowManager和无障碍的点击实现可见即可说功能##&#x20;无障碍服务获取需要注册的热词```packagecom..model;importandroid.acce

设计模式之命令模式

文章目录智能生活项目需求命令模式基本介绍命令模式的原理类图命令模式解决智能生活项目命令模式的注意事项和细节智能生活项目需求看一个具体的需求我们买了一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装app就可以控制对这些家电工作。这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个App,分别控制,

opencv实现仿射变换

什么是仿射变换?代码实现importnumpyasnpimportcv2ascvimportmatplotlib.pyplotasplt#设置字体frompylabimportmplmpl.rcParams['font.sans-serif']=['SimHei']#图像的读取img=cv.imread("lena.p

K8S ingress nginx性能优化

nginx性能主要优化参数:worker_connections和worker_processes是Nginx配置中的两个重要参数,用于控制Nginx服务器的性能和并发连接处理能力。worker_connections:worker_connections参数用于指定每个Nginx工作进程(workerprocess)

OpenCV自学笔记十五:图像轮廓

目录1、查找并绘制轮廓2、矩特征3、Hu矩4、轮廓拟合5、凸包1、查找并绘制轮廓在OpenCV中,可以使用`cv2.findContours()`函数来查找图像中的轮廓,并使用`cv2.drawContours()`函数将轮廓绘制到图像上。下面是一个示例代码:importcv2#读取图像并转换为灰度图像image=cv

AI项目八:yolo5+Deepsort实现目标检测与跟踪(CPU版)

若该文为原创文章,转载请注明原文出处。一、DeepSORT简介DeepSORT是一种计算机视觉跟踪算法,用于在为每个对象分配ID的同时跟踪对象。DeepSORT是SORT(简单在线实时跟踪)算法的扩展。DeepSORT将深度学习引入到SORT算法中,通过添加外观描述符来减少身份切换,从而提高跟踪效率。这是提供两个dem

学习如何编码

在学习编码时感受到一些失败●他在编码旅途之初并没有一个明确的目标;●他从看课程和阅读教程开始,但他只会复制代码,而不关心它是如何工作的。有时候他会复制粘贴代码●他没有通过做小挑战或记笔记来强化他正在学习的东西●他没有练习编程,也没有提出自己的项目想法●当他的代码不是非常干净或高效时,他很快就感到沮丧●他失去了动力,因为

计算机视觉与深度学习-经典网络解析-GoogLeNet-[北邮鲁鹏]

这里写目录标题GoogLeNet参考GoogLeNet模型结构创新点Inception结构,它能保留输入信号中的更多特征信息去掉了AlexNet的前两个全连接层,并采用了平均池化引入了辅助分类器GoogLeNetGoogLeNet的设计主要特点是引入了Inception模块,这是一种多尺度卷积结构,可以在不同尺度下进行

Leetcode.146 LRU 缓存

题目链接Leetcode.146LRU缓存mid题目描述请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacitycapacitycapacity初始化LRU缓存intget(intkey)如果关键字keykeyke

JVM-环境准备&性能指标&基础知识

环境准备&性能指标&基础知识环境准备JDK—工具JDK(JavaDevelopmentKit)是用于开发Java应用程序的软件开发工具集合,包括了Java运行时的环境(JRE)、解释器(Java)、编译器(javac)、Java归档(jar)、文档生成器(Javadoc)等工具。简单的说我们要开发Java程序,就需要安

热文推荐