web网站学习 apache (一)

文章目录

学习内容

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 
 ②到配置文件中查看配置路径
相关推荐
逐·風16 分钟前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
Devil枫1 小时前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
尚梦1 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
GIS程序媛—椰子2 小时前
【Vue 全家桶】6、vue-router 路由(更新中)
前端·vue.js
前端青山2 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
毕业设计制作和分享3 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
dsywws3 小时前
Linux学习笔记之vim入门
linux·笔记·学习
晨曦_子画3 小时前
3种最难学习和最容易学习的 3 种编程语言
学习
城南vision4 小时前
Docker学习—Docker核心概念总结
java·学习·docker
ctrey_4 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习