【运维进阶】WEB 服务器

WEB 服务器

WEB 服务器简介

Web 服务器(Web Server)是指一种接收客户端(如浏览器)发送的 HTTP 请求,并返回网页内容或资源的程序或设备。它是万维网(WWW)的核心组成部分。

Web 服务器的主要功能

在这里插入图片描述

常见web服务器

Apache

Apache HTTP Server,非正式的称呼 Apache,是世界上应用最广泛的WEB服务器。

其优势在于,Apache一个可扩展的Web服务器,支持的模块非常丰富。

Apache的源代码是开放的、支持跨平台应用等。

Apache 是属于重量级产品,在速度和性能上不及其他轻量级WEB服务器,所消耗的内存也比其他WEB服务器要高。

Nginx

Nginx是一款高性能的HTTP和反向代理服务器,能够选择高效的epoll、kqueue、eventport最为网络I/O模型,在高连接并发的情况下,能够支持高达5万个并发连接数的响应,而内存、CPU等系统资源消耗却非常低,运行非常稳定。

Lighttpd

Lighttpd提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的WEB Server环境,它具有内存开销低、CPU占有率低、效能好,以及模块丰富等特点。支持FastCGI、CGI、Auth、输出压缩、URL重写及Alias等重要功能,属于轻量级WEB服务器。

Tomcat

Tomcat 是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的web应用软件容器。Tomcat server 是根据servlet和jsp规范执行的,因此也可以说Tomcat server实行了Apache-Jakarta规范,且比绝大多数商用应用软件服务器要好。tomcat对静态文件和高并发的处理比较弱。

IIS

Microsoft的Web服务器产品为 Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。

IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(IntranetServer API)作为扩展Web服务器功能的编程接口;同时它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

Nginx

Nginx是一款高性能的HTTP和反向代理服务器,能够选择高效的epoll、kqueue、eventport最为网络I/O模型,在高连接并发的情况下,能够支持高达5万个并发连接数的响应,而内存、CPU等系统资源消耗却非常低,运行非常稳定。

安装 nginx
# 安装 nginx
[root@server ~ 21:10:50]# yum install -y nginx# 启动 nginx
[root@server ~ 21:11:03]# systemctl enable nginx --now
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.# 准备主页
[root@server ~ 21:12:12]# mv /usr/share/nginx/html/index.html{,.ori}
[root@server ~ 21:13:13]# echo Hello World From Nginx > /usr/share/nginx/html/index.html# 防火墙(如果未启用就不用做)
[root@server ~ 21:13:16]# firewall-cmd --add-service=http --permanent
[root@server ~ 21:13:19]# firewall-cmd --reload[root@client ~]# curl http://www.xiexin.cloud
# windows客户端修改C:\Windows\System32\drivers\etc\hosts
# Linux或Unix修改 /etc/hosts
# 添加如下记录
10.1.8.10 www.xiexin.cloud
虚拟主机

同一个web服务器提供多个站点。

根据名称
[root@server ~ 21:13:22]# vim /etc/nginx/conf.d/vhost-name.conf
server {server_name  web1.xiexin.cloud;root         /usr/share/nginx/web1;
}
server {server_name  web2.xiexin.cloud;root         /usr/share/nginx/web2;
}
根据 port
[root@server ~ 21:19:17]# vim /etc/nginx/conf.d/vhost-port.conf
server {listen       8081;server_name  www.xiexin.cloud;root         /usr/share/nginx/8081;
}
server {listen       8082;server_name  www.xiexin.cloud;root         /usr/share/nginx/8082;
}
配置SSL/TLS
生成证书
#--1--生成私钥 
[root@server ~ 21:19:26]# openssl genrsa -out www.key 2048  
Generating RSA private key, 2048 bit long modulus
..............................................................................+++
............................................................................................................................+++
e is 65537 (0x10001)#--2--生成请求文件csr
[root@server ~ 21:20:54]# openssl req -new -key www.key -out www.csr -subj "/C=CN/ST=JS/L=NJ/O=LM/OU=DEVOPS/CN=www.xiexin.cloud/emailAddress=xiexin@xiexin.cloud" 
#CN的值必须是网站域名  #--3--使用自己的私钥对请求文件签名,以生成证书 
[root@server ~ 21:21:51]# openssl x509 -req -days 3650 -in www.csr -signkey www.key -out www.crt
Signature ok
subject=/C=CN/ST=JS/L=NJ/O=LM/OU=DEVOPS/CN=www.xiexin.cloud/emailAddress=xiexin@xiexin.cloud
Getting Private key
配置站点
[root@server ~ 21:22:21]# mkdir /etc/ssl/certs/www.xiexin.cloud
[root@server ~ 21:23:05]# mv www* /etc/ssl/certs/www.xiexin.cloud
[root@server ~ 21:23:18]# vim /etc/nginx/conf.d/ssl.conf
server {listen       443 ssl http2 default_server;listen       [::]:443 ssl http2 default_server;server_name  www.xiexin.cloud;root         /usr/share/nginx/html;# 证书ssl_certificate "/etc/ssl/certs/www.xiexin.cloud/www.crt";# 私钥ssl_certificate_key "/etc/ssl/certs/www.xiexin.cloud/www.key";
}[root@server ~ 21:25:01]# systemctl restart nginx# 配置HTTP重定向到https.
[root@server ~ 21:25:04]# vim /etc/nginx/nginx.confserver {listen       80 default_server;listen       [::]:80 default_server;server_name  www.xiexin.cloud;root         /usr/share/nginx/html;# 添加 重定向return       301 https://$host$request_uri;}
[root@server ~ 21:27:35]# systemctl restart nginx# 防火墙设置(防火墙一般默认不开)
[root@www ~]# firewall-cmd --add-service=https --permanent
[root@www ~]# firewall-cmd --reload# 测试
[root@client ~ 21:28:50]# curl http://www.xiexin.cloud/
[root@client ~ 21:28:57]# curl -k https://www.xiexin.cloud/
配置基本认证

用户名和密码使用plain text发送,所以最好配置SSL/TLS。

# 安装工具
[root@server ~ 21:27:47]# yum -y install httpd-tools
[root@server ~ 21:35:34]# vim /etc/nginx/conf.d/ssl.conf
server {.....location /auth-basic/ {auth_basic            "Basic Auth";auth_basic_user_file  "/etc/nginx/.htpasswd";}
}[root@server ~ 21:36:17]# systemctl restart nginx# add user for Basic authentication
[root@server ~ 21:36:48]# htpasswd -c /etc/nginx/.htpasswd xiexin
New password: 
Re-type new password: 
Adding password for user xiexin# create a test page
[root@server ~ 21:37:45]# mkdir /usr/share/nginx/html/auth-basic
[root@server ~ 21:38:23]# vim /usr/share/nginx/html/auth-basic/index.html
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: xiexiner;">
Test Page for Basic Authentication
</div>
</body>
</html># 测试
[root@client ~ 21:40:15]# curl http://www.xiexin.cloud/auth-basic/
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: xiexiner;">
Test Page for Basic Authentication
</div>
</body>
</html>
支持动态脚本
使用 PHP
# 安装PHP和php-fpm,建议把其他的扩展包一起安装
[root@server ~ 21:39:10]# yum install -y php php-fpm# 建议把其他的扩展包一起安装
[root@server ~ 21:42:22]# yum install -y php-gd php-common php-pear php-mbstring php-mcrypt# 查看 php 版本
[root@server ~ 21:43:31]# php -v
PHP 5.4.16 (cli) (built: Apr  1 2020 04:07:17) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies# 测试 php 是否正常
[root@server ~ 21:44:04]# echo "<?php echo 'PHP Test Page'.\"\n\"; ?>" > php_test.php 
[root@server ~ 21:44:40]# php php_test.php 
PHP Test Page# 准备测试页,使用phpinfo查看详细信息
[root@server ~ 21:44:45]# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php# 测试
[root@client ~]# curl http://www.xiexin.cloud/info.php

Tomcat

Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器,常用于部署 Java Web 应用。它实现了 Java EE 中的 Servlet、JSP 等规范。

主要特点
  • Servlet 容器:支持运行基于 Servlet 技术的 Java Web 应用。

  • 支持 JSP:可以编译和运行 JSP 页面。

  • 轻量级:相比完整的 Java EE 服务器(如 JBoss、WebLogic),Tomcat 更轻便,适合中小型 Web 项目。

  • 开源免费:由 Apache 软件基金会维护。

  • 配置灵活:通过 XML 配置文件(如 server.xml、context.xml)进行管理。

Tomcat 部署
# 安装
[root@server ~ 21:49:44]# yum install -y tomcat# 验证版本
[root@server ~ 21:50:19]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)# 启动tomcat
[root@server ~ 21:51:34]# systemctl enable --now tomcat.service
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.# 准备测试页面
[root@server ~ 21:51:53]# cd /var/lib/tomcat/webapps/
[root@server webapps 21:52:12]# mkdir test
[root@server webapps 21:52:16]# vim test/index.jsp
<html><head><title>第一个 JSP 程序</title></head><body><%out.println("Hello World!");%></body>
</html># 测试
[root@server ~ 21:54:57]# curl http://www.xiexin.cloud:8080/test/index.jsp
<html><head><title>第一个 JSP 程序</title></head><body>Hello World!</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92668.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM(大语言模型)的“幻觉”本质原因

LLM(大语言模型)的“幻觉”本质原因 LLM(大语言模型)的“幻觉”(生成与事实不符但模型自信输出的内容)本质上是其作为概率统计模型的底层机制与训练、推理过程中多重限制共同作用的结果。从模型内部逻辑、训练机制到推理环节 一、底层机制:基于“统计关联”而非“真实…

java基础(六)jvm

1. JVM内存的五大核心区域 一个帮手想象JVM运行程序时&#xff0c;需要划分不同区域干不同的事。主要分为这五大块&#xff0c;外加一个特殊帮手&#xff1a;1.1 程序计数器 (Program Counter Register) - 你的“任务进度条”干啥的&#xff1a; 专门记录当前线程执行代码执行…

计算机网络:什么是AD域

什么是AD域? AD域(Active Directory Domain)是微软基于Active Directory(活动目录) 技术构建的网络管理架构,用于集中管理网络中的用户、计算机、设备、权限等资源。它是企业级网络环境中实现身份认证、资源共享和安全控制的核心组件。 AD域的核心功能与作用 集中化身份…

虚幻基础:场景位置相对位置

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录绝对坐标&#xff1a;绝对坐标不会改变绝对坐标绝对方向x&#xff1a;世界的前y&#xff1a;世界的右z&#xff1a;世界的上相对坐标&#xff1a;坐标系的原点和方向会基于父组件 变换相对坐标相对方向&#xff1a;改…

【代码随想录day 16】 力扣 106.从中序与后序遍历序列构造二叉树

视频讲解&#xff1a;https://www.bilibili.com/video/BV1vW4y1i7dn/?vd_sourcea935eaede74a204ec74fd041b917810c 文档讲解&#xff1a;https://programmercarl.com/0106.%E4%BB%8E%E4%B8%AD%E5%BA%8F%E4%B8%8E%E5%90%8E%E5%BA%8F%E9%81%8D%E5%8E%86%E5%BA%8F%E5%88%97%E6%9E…

vue+flask大模型写诗诗词推荐与可视化系统

文章结尾部分有CSDN官方提供的学长 联系方式名片文章结尾部分有CSDN官方提供的学长 联系方式名片关注B站&#xff0c;有好处&#xff01;编号&#xff1a; F061 大模型诗词推荐与可视化系统 在传统文化数字化的浪潮下&#xff0c;我开发了这款诗歌问答大数据平台&#xff0c;旨…

Apache Ignite 核心组件:GridClosureProcessor解析

这是一个 Apache Ignite 中非常核心的组件 —— GridClosureProcessor&#xff0c;它是 分布式闭包&#xff08;Closure&#xff09;执行的调度中枢&#xff0c;负责在集群节点上异步执行用户提交的任务&#xff08;如 Runnable、Closure&#xff09;。 我们来逐层深入理解它的…

for循环详解与实战技巧

目录 一、for循环语法 二、for循环执行流程 流程图表示&#xff1a; 三、for循环实践示例 示例&#xff1a;在屏幕上打印1~10的值 四、while循环与for循环对比 for循环和while循环都包含三个关键部分&#xff1a; 两者的主要区别在于代码组织方式&#xff1a; 五、练习…

winform中的listbox实现拖拽功能

文章目录前言一、实现前言 winform中的listBox实现拖拽&#xff01; 一、实现 winform中的listbox实现拖拽只需要实现四个事件 1、准备两个listbox控件 其中listtarget&#xff0c;AllowDrop属性设置为True。 2、实现四个事件 2.1MouseDown //在 MouseDown 事件期间&#x…

用 Docker 安装并启动 Redis:从入门到实战

用 Docker 安装并启动 Redis&#xff1a;从入门到实战Redis 作为一款高性能的键值对数据库&#xff0c;在缓存、会话存储、消息队列等场景中被广泛应用。本文将详细介绍如何使用 Docker 快速安装和启动 Redis&#xff0c;包括基础配置、数据持久化以及容器管理等核心操作&#…

ansible学习第一天

一&#xff1a;ansible基础知识1.1 ansible的定义与工作原理简述ansible是一个自动化运维工具&#xff0c;用于执行自动化任务&#xff0c;包括像配置管理&#xff0c;应用部署&#xff0c;任务执行等等&#xff0c;本质上来说也是基础设施及代码工具&#xff0c;通过可读性较强…

Vue原理与高级开发技巧详解

Vue 的底层原理、高级用法、性能优化和生态整合 文章目录Vue 的底层原理、高级用法、性能优化和生态整合一、Vue 双向绑定原理深度剖析1. Vue 2 实现原理&#xff08;Object.defineProperty&#xff09;2. Vue 3 实现原理&#xff08;Proxy&#xff09;3. v-model 高级用法二、…

axios的封装

axios的封装 在src目录下新建文件夹utils工具类&#xff0c;文件夹里面新建http.js文件&#xff0c;如果项目涉及到多个基地址可以新建http2.js文件。 import axios from axios;/*** 后端*/// 创建axios实例 const http axios.create({// 1.接口基地址baseURL: http://192.168…

MariaDB 数据库管理与web服务器

MariaDB 数据库管理与WEB 服务器 介绍 MariaDB 数据库介绍 **数据库&#xff0c;是一个存放计算机数据的仓库。**这个仓库是按照一定的数据结构来对数据进行组织和存储的&#xff0c;我们可以通过数据库提供的多种方法来管理其中的数据。 数据结构&#xff0c;是指数据的组织形…

分治-归并-912.排序数组-力扣(LeetCode)

一、题目解析1、将数组排升序2、在不使用任何内置函数的情况下解决问题二、算法原理分治-归并合并两个有序数组1、双指针遍历两个合并数组2、将比较后的较小值放到新开数组中3、防止有指针未遍历完&#xff0c;特殊处理4、将nums中的元素还原三、代码示例vector<int> tmp…

网络安全初学者学习心得

看到你对网络安全学习的兴趣&#xff0c;我感到非常振奋&#xff01;这个领域既充满挑战又回报丰厚&#xff0c;作为初学者&#xff0c;理清学习内容和方向确实至关重要。下面我将结合多年的行业观察和指导经验&#xff0c;为你详细拆解网络安全初学者的学习内容并分享一些核心…

防火墙笔记优化版

一、防火墙的核心定义防火墙是一种基于预设安全策略&#xff0c;用于隔离内网与外网、控制网络流量的安全系统&#xff08;可分为软件系统或硬件系统&#xff09;。其核心作用包括&#xff1a;流量隔离&#xff1a;物理或逻辑分隔内网、外网及 DMZ 区域&#xff08;DMZ 为内网与…

vue3前端项目cursor rule

cursor rule是什么&#xff0c;以及怎么定义&#xff0c;看这个文章&#xff1a; cursor中定义cursor rules_cursor rules如何编写-CSDN博客 针对现有一个vue3的前端项目&#xff0c;写了一份cursor rule&#xff0c;可以作为参考&#xff0c;内容如下&#xff08;仅作为参考&…

基于51单片机红外遥控定时开关智能家电插座设计

1. 功能介绍 本设计是一款基于 STC8C52 单片机 的智能家电插座系统&#xff0c;集 红外遥控控制、定时开关控制、自动与手动模式切换、掉电数据保存、液晶显示、蜂鸣器提示 于一体&#xff0c;能够方便用户对家用电器进行精准的定时控制与远程操作。系统广泛适用于家用电器、办…

下一代防火墙组网方案

知识回顾&#xff1a;1.传统防火墙包括包过滤防火墙、应用网关防火墙、状态检测防火墙。2.包过滤防火墙工作在3、4层。3.包过滤防火墙特点&#xff1a;4.应用网关防火墙主要作用&#xff1a;①截取用户初始化连接请求&#xff0c;对用户进行认证&#xff1b;②通过ALG能让多通道…