文章目录
- 一、web服务
-
- [1.1 http](#1.1 http)
- [1.2 Web](#1.2 Web)
- [1.3 web中间件](#1.3 web中间件)
- [二、 Apache服务的搭建与配置](#二、 Apache服务的搭建与配置)
- [2.1 服务安装基本思路](#2.1 服务安装基本思路)
- [三、 Nginx 配置Web服务](#三、 Nginx 配置Web服务)
一、web服务
以赛促学的内容:因不清楚出题使用何种服务,特将两种服务归纳总结.
HTTP是数据传输的规则,Web是基于HTTP协议的服务。当今,概念已混淆了。个人在此也视为相同,则补充相关原理简介。
1.1 http
用户访问网址基本流程
DNS 解析流程
Chrome浏览器使用快捷键Ctrl+Shift+I(或通过点击菜单图标,然后选择"更多工具"中的"开发者工具")查看HTTP版本和IP解析
1.2 Web
Web服务器是互联网应用的核心组件,提供了处理请求、传输内容、保证安全、提升性能、支持扩展等多种关键功能。无论是简单的静态网站还是复杂的动态Web应用,Web服务器都是不可或缺的基础设施,确保用户能够高效、安全地访问和使用Web资源。
目前最主流的web服务器是Nginx、Apache。 Aphache 和 Nginx 都是开源的 Web
服务器软件,它们都可以用于提供静态内容、动态内容和反向代理服务。然而,它们之间存在一些区别:
- 性能:Nginx 通常比 Aphache 更快,因为它使用更少的内存和 CPU 资源来处理请求。Nginx 的设计目标是高性能和低资源消耗。
- 配置:Nginx 的配置比 Aphache 更复杂,但它提供了更多的功能和灵活性。Nginx 支持更多的模块,可以更轻松地实现复杂的功能,如负载均衡、SSL 加密、缓存等。
- 社区支持:Nginx 的社区支持比 Aphache 更强大,有更多的开发者和用户参与。这意味着 Nginx 有更多的插件和扩展,可以满足更多的需求。
- 稳定性:Aphache 通常比 Nginx 更稳定,因为它的代码更简单,没有那么多的模块和配置选项。这使得 Aphache 更容易维护和调试。
- 使用场景:Nginx 通常用于高负载的网站,如电子商务网站、社交网络等。而 Aphache 则适用于小型网站和个人项目。
- 开源协议:Aphache 遵循 GPLv3 开源协议,而 Nginx 遵循 BSD 2 开源协议。这意味着 Nginx 的使用范围更广泛,因为它不需要遵守 GPLv3 的许可要求。
Apache侧重在完整稳定上,而Nginx侧重在轻量高效上,很多时候Apache和Nginx是配合使用的,Nginx配置在Apache前面,用它挡掉静态文件的请求(网站今天资源的请求占了大部分的),Nginx处理不了的内容菜才转发给Apache来处理
1.3 web中间件
Web中间件通常负责处理特定编程语言编写的动态内容。这些中间件接收来自Web服务器(如Apache或Nginx)的请求,处理这些请求,并返回响应,常见的Web中间件(也称为Web容器)包括:
- PHP的中间件:php-fpm(PHP端口9000)
- Java的中间件:Tomcat(端口8080,并发量到150就不行了)、JBoss、WebLogic
- Python的中间件:uWSGI(默认端口5000)
前端页面的静态元素包括HTML、图片(.img)、JavaScript(.js)和CSS(.css)等文件,可以使用Apache或Nginx作为Web服务器来提供这些静态内容。
后端页面的动态元素根据不同的开发语言而有所不同,例如PHP和JSP。这些动态元素需要配合相应的编程语言(如Java、PHP和Python)进行处理和生成。
二、 Apache服务的搭建与配置
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之
2.1 服务安装基本思路
python
dnf search Apache # 搜索服务的包名
dnf -y install httpd.x86_64 # 安装
rpm -qc httpd.x86_64 # 查找配置文件
vim /etc/httpd/conf/httpd.conf
...
124 DocumentRoot "/var/www/html" # 服务器文档根目录
169 DirectoryIndex index.html # 服务器默认返回的文件名
...
echo 'hello world' >/var/www/html/index.html # 测试
systemctl enable --now httpd #开机自启
firewall-cmd --permanent --add-service=http # 防火墙
firewall-cmd --reload
三、 Nginx 配置Web服务
python
dnf search nginx
dnf install nginx -y
rpm -qa |grep nginx
rpm -qc nginx-1.20.1-10.el9.x86_64
vim /etc/nginx/nginx.conf
......
38 server {
39 listen 8000;
40 listen [::]:80;
41 server_name _;
42 root /usr/share/nginx/html;
43 index index.html
......
systemctl enable --now nginx.service
systemctl status nginx.service
ss -ntlp |grep 8000
echo hh > /usr/share/nginx/html/index.html
curl http://localhost:8000
firewall-cmd --state
firewall-cmd --permanent --add-port=8000/tcp
firewall-cmd --reload