web服务器配置-(apache+nginx)

news2024/9/9 0:53:27

⼀、web基本概念和常识

Web:为⽤户提供的⼀种在互联⽹上浏览信息的服务,Web 服务是动态的、可交互的、跨平台的和图形化的。

Web 服务为⽤户提供各种互联⽹服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容。

Web 应⽤开发也经过了⼏代技术的不断发展,⽬前 Web 开发依 然是最重要的开发内容之⼀。Web 基础的技术包括超⽂本标记 语⾔(HTML)和 HTTP 协议,HTML 是⼀种呈现数据的⽅式 (给⼈看的),⽽ HTTP 则是⼀组通信的标准(语法、语义、时许),可以简单的理解为 HTTP 携带 HTML。

1.web 应⽤:⽹站(⼴义上的PC,⼿机app)

2.浏览器(Browser):也称⽤户代理,web客户端,主要有IE、Edge、Chrome、Firefox、腾讯浏览器,360浏览器等。

3.web服务器(web server):也称HTTP服务器(HTTP server),主要有 Nginx、Apache、Tomcat 等。

二、apache服务

(1)Apache 概念  

1、概述   最早的 web 服务程序,基于 http 协议提供⽹⻚浏览服务。  

2、特点   模块化设置、开放源代码、跨平台应⽤、⽀持多种 web 编程语⾔、运⾏稳定。  

3、⼯作模式 

(1)Prefork:使⽤进程处理请求,在该模式中⽐较消耗内存,但稳定性⾼,如某个进程出现问题,不会影响其他请求。

(2)Worker:属于多进程模式,每个进程⽣成多个进程;在该模式下消耗的资源⽐较⼩,适合⾼并发请求,但稳定性没有 Prefork 模式稳定。

(3)Event:该模式与 Worker 模式较为相似,不同之处在于在该模式下可以解决keepalive ⻓连接时占⽤线程资源导致浪费的问题。

(4)keep-alive ⻓连接:TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为 每个请求建⽴新连接所需的时间,还节约了带宽。实现⻓连接要客户端和服务端都⽀持⻓连接。

(2)搭建 apache 服务器

1、安装并设置防⽕墙

2.安装httpd服务 

[root@web ~]# yum -y install httpd  
查看安装情况以及安装的资源文件   
[root@web ~]#rpm -qa | grep httpd   
[root@web ~]#rpm -ql httpd   
[root@web ~]#ls /etc/httpd/   
[root@web ~]#vim /etc/httpd/conf/httpd.conf   
[root@web ~]#ls /var/www/html/   
查看端⼝确认apache已启⽤   
[root@web ~]#netstat -lnput | grep http  
检查防火墙   
[root@web ~]#systemctl status firewalld   
不能直接禁用防火墙,可以单独打开端口/服务   
[root@web ~]#firewall-cmd --zone=public --add-port=80/tcp --permanent   
[root@web ~]#firewall-cmd --zone=public --add-service=http --permanent   
打开服务不会马上生效,需要重启或者重载服务信息(重载防⽕墙规则)   
[root@web ~]#firewall-cmd --reload 
#查看当前区域下防⽕墙所有规则
[root@web ~]# firewall-cmd --list-all  
[root@web ~]#cd /var/www/html/

[root@web html]# systemctl restart httpd.service 

[root@web html]# echo "我是静态页面" > index.html

[root@web html]# rz -E

rz waiting to receive.

[root@web html]# ls

haha.jpg  index.html

浏览器访问ip: 

3.apache 索引⽂件

当在资源目录中添加index.html之后,html服务会自动找到index文件

在⼀般的前段服务器中http nginx tomcat,在没有指定⽂件路径的时候,默认先访问资源⽂件夹中的index.xxx

./html/index.html

httpd 使⽤ yum 安装时,默认的站html⽂件在/var/www/html/index.html,如果 index.html ⽂件不存在,需要⼿动创建

在⽹站⽅⾯,index通常是指主⽬录的意思,index.html是⽬录下默认打开的⻚⾯。

⽐如,⽹站的域名是www.abc.com,如果设置了 index.html 是

默认主⻚,那么打开 http://www.abc.com 和打开⻚⾯ http://www.abc.com/index.html 就是⼀样的。他们打开的都是⽹站⾸⻚,因为index.html是⽹站默认的主⻚。

在 index.html 写⼊如下内容,可以让主⻚显示⼀个圆形,圆⼼处显示⽂字“这就是主⻚”

[root@web html]# vim /var/www/html/index.html

重启服务  

[root@shell ~]# systemctl restart httpd  

4.服务器访问测试

浏览器内输⼊搭建好的 httpd 服务器 IP 地址或域名(IP:192.168.2.21)

三、部署nginx服务

1、Nginx 简介    Nginx(engine X):开源、轻量级、⾼性能的 HTTP 和反向代理服务器,可以代理 HTTP、IMAP/POP3/SMTP 和 TCP/UDP协议。    

基本特点:占⽤内存少、并发能⼒强,采⽤ C 语⾔编写,在性能⽅⾯有⼀定保证。    

Nginx 可以⽤来做负载均衡及反向代理使⽤,⽬前使⽤最多的是   负载均衡。    

与 Nginx 同类的 Web 服务有 Apache、Tomcat 等。    

官⽅⽹站:http://nginx.org/  

2、Nginx 服务器特点  

(1)模块化设计  Nginx 将模块分为核⼼模块、HTTP 模块、事件模块和邮件模块四类。每个模块都有特定的职责,从⽽实现了整个 Web 服务器的功能。  

(2)低内存消耗,⾼并发  Nginx 使⽤ epoll and kqueue 作为开发⼯具,能够⽀持最⼤50000 个并发连接数的响应;不论是系统资源开销还是 CPU 使⽤效率都很优秀。  

(3)事件驱动  nginx 采⽤异步⽅式处理请求。   同步:指在发送⽅发出消息后,需要等待接收到接收⽅发回的响应,或者通过回调函数来接收到对⽅响应信息。   异步:指在发送⽅发出请求后,接收⽅不需要返回消息或者不等待返回消息,直接提供响应请求机制。  

(4)⾼可靠性,master 与 worker 架构  ⼀个主进程和多个⼯作进程。⼯作进程是单线程的,且不需要特殊授权即可运⾏;   master进程:主要⽤来监控worker进程⼯作状态进⾏相应重启、停⽌等操作。   worker进程:进⾏具体提供服务,接受请求和处理请求。  

(5)⽀持热更新配置、⽇志⽂件滚动、平滑升级  /usr/local/nginx/sbin/nginx -s reload  html⽬录中的⽂件发上修改之后,不需要nginx服务   可向 master 发送 USR1、QUIT 等信号,⽆需强制停⽌服务即可完成热更新。   向 master 发送的 USR1,可实现⽇志⽂件滚动。   向 master 发送的 USR2,可实现平滑升级。  

(6)丰富的扩展模块  可在编译安装 nginx 时指定拓展模块,例如:nginx-sticky-module 模块(基于 cookie 来进⾏负载转发)。  

3、Nginx 和 Apache 区别  

(1)架构  Apache 采⽤多进程架构,每个请求都由⼀个独⽴的进程处理; ⽽Nginx采⽤异步事件驱动的架构,可以处理更多的并发连接。  

(2)性能  由于Nginx的架构设计,它可以处理更多的并发连接,⽽且在⾼负载情况下表现更加稳定和可靠。因此,Nginx通常被认为是⽐Apache更⾼效的Web服务器  

(3)配置  Apache 的配置⽂件⽐较复杂,需要⼀定的学习和经验才能正确配置;⽽ Nginx 的配置⽂件⽐较简洁和可读性强,更容易理解和配置。  

(4)功能  nginx有许多模块可以扩展其功能,例如 mod_rewrite ⽤于URL 重写,mod_ssl⽤于 SSL 加密等;⽽apach 的功能⽐较简单,但是可以通过第三⽅模块扩展其功能。

web服务器:

4.Nginx 安装

(1).下载安装nginx

[root@web ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz

(2).解压

[root@web ~ ]# tar -zxvf nginx-1.26.1.tar.gz

(3).编译安装 nginx
(1)安装 pcre

⾸先安装 pcre。此软件是为了⽀持 rewrite(重写、复写)功能⽽存在的。rewrite 是实现 url 重定向的重要命令,它会根据正则表达式来匹配内容,从⽽跳转到⽬标上⾯去。

[root@web ~]# yum -y install pcre-devel

(2)安装 OpenSSL

当没有使⽤ ssl 证书对服务器数据进⾏加密认证时,⽤户的数据将会以明⽂的形式进⾏传输,⽽此时,⽤户的数据可以被⼀些抓包⼯具获取,就容易造成⽤户的信息泄露。

所以为了改善这种情况,作为运维⼈员需要去为⽹站配置 ssl 证书,实现 https 协议的访问

(3)在安装之前还要安装⽤来编译的⼯具

gcc、gcc-c++、make;lrzsz 是⽤来从 Windows 上直接将⽂件导⼊到 Linux 内的⼯具。

[root@web ~]# yum -y install gcc gcc-c++ make

(4)编译安装 nginx

如果之前在系统上有 yum 安装的 nginx,那么在编译安装之前 需要先卸载掉原来的 nginx。

卸载nginx:yum -y remove nginx

[root@web ~]# ls

nginx-1.26.1 nginx-1.26.1.tar.gz

cd到安装包⽬录下

[root@web ~]# cd nginx-1.26.1/[root@web nginx-1.26.1]# lsauto CHANGES.ru configure html man srcCHANGES conf contrib LICENSE README[root@web nginx-1.26.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream

命令分步解释:

[root@web nginx-1.26.1]# make && make install

[root@web nginx-1.26.1]# useradd -s /bin/nologin -M nginx

检查目录

[root@web nginx-1.26.1]# tree /usr/local/nginx

[root@web nginx-1.26.1]# cd /usr/local/nginx/

[root@web nginx]# ls

conf html logs sbin

备份目录

[root@web nginx]# cp -r conf/ conf.bak

[root@web nginx]# ./sbin/nginx

开放端口或者服务

[root@web nginx]# firewall-cmd --zone=public --add-port=80/tcp --permanent

success

[root@web nginx]# firewall-cmd --reload

success

[root@web nginx]# vim /usr/local/nginx/conf/nginx.conf

创建符号链接(软链接)

[root@web nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/bin/

[root@web nginx]# ls -l /usr/bin/nginx

lrwxrwxrwx. 1 root root 27 7月 29 16:16 /usr/bin/nginx -> /usr/local/nginx/sbin/nginx

[root@web nginx]# nginx

[root@web nginx]# nginx -s stop

[root@web nginx]# netstat -lnput|grep nginx

[root@web nginx]# nginx

[root@web nginx]# netstat -lnput|grep nginx

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17228/nginx: master

启动和关闭nginx服务

./nginx ./nginx -s reload

修改了配置文件后,重载nginx服务网

./nginx -s reload

脚本启动nginx服务:

[root@web nginx]# vim ~/nginx.sh

[root@web nginx]# bash ~/nginx.sh

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17228/nginx: master  

nginx正在执行,或者是80端口被占用

[root@web nginx]# nginx -s stop

[root@web nginx]# bash ~/nginx.sh

以systemctl控制nginx  

[root@web nginx]# vim /usr/lib/systemd/system/nginx.service

如果直接使用sbin目录下的nginx,就无法使用systemctl  

这两套命令只能用一套  

[root@web nginx]# systemctl daemon-reload            

(1)[root@web nginx]# systemctl stop nginx  

(2)[root@web nginx]# nginx -s reload          

         [root@web nginx]# nginx -s stop  ​  

添加监控块  

[root@web nginx]# vim /usr/local/nginx/conf/nginx.conf

[root@web nginx]# systemctl restart nginx

[root@web ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz  

[root@web ~ ]# tar -zxvf nginx-1.26.1.tar.gz   [root@web ~]# yum -y install gcc gcc-c++  [root@web ~]# yum -y install openssl-devel pcre-devel make  

[root@web ~]# ls nginx-1.26.1  nginx-1.26.1.tar.gz

[root@web ~]# cd nginx-1.26.1/

[root@web nginx-1.26.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream [root@web nginx-1.26.1]# make && make install  

[root@web nginx-1.26.1]# useradd -s /bin/nologin -M nginx  

[root@nginx nginx-1.26.1]# echo "我是后端服务" > /usr/local/nginx/html/index.html

[root@nginx nginx-1.26.1]# firewall-cmd --zone=public --add-port=80/tcp --permanent   [root@nginx nginx-1.26.1]# firewall-cmd --reload 

修改配置文件  

[root@nginx nginx-1.26.1]# vim /usr/local/nginx/conf/nginx.conf

将其修改为utf-8(防止出现乱码)

[root@nginx nginx-1.26.1]# /usr/local/nginx/sbin/nginx

[root@nginx nginx-1.26.1]# /usr/local/nginx/sbin/nginx -s reload

浏览器访问:192.168.2.27

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

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

相关文章

LinuxCentos中安装apache网站服务详细教程

🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理防护和群集专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作…

【Opencv】色彩空间 color space

import os import cv2 img cv2.imread(os.path.join(.,dog.jpg)) # 在opencv中使用imread,读取的图片每个像素都是bgr色彩,蓝色,绿色,红色 cv2.imshow(img,img) cv2.waitKey(0) # 颜色空间转化:BGR2RGB img_rgb cv2.cvtC…

爱快路由的dns强制客户端代理真是个强大的功能

大致情况是这样的:同事说在linux服务器/etc/resolv.conf上随便写个IP地址【不在线的】,dns地址也能解析,让我帮忙查查。 我看了下也感觉纳闷,试了下不光在服务器上,我本地的pc随便设置了个dns解析也是一样的。 通过wir…

【黄啊码】零代码动手创建ModelScope Agent

还没开始学习,先来回复一下,什么是Agent Agent包含的模块 好了,开始发放干货: 1、创建通义千问API (新注册用户有一定的限时免费额度) 2、登录阿里云账号,打开 DashScope管理控制台,开通 DashScope灵积模…

C#网络连接:TCP/IP模式下的网络连接与同步

1&#xff0c;目的 为了测试局域网的消息同步&#xff0c;简单写了下TCP/IP模式的同步&#xff0c;参考这个帖子。 2&#xff0c;核心库部分 using System; using System.Net; using System.Net.Sockets; using System.Text;namespace Coldairarrow.Util.Sockets {/// <s…

【React】useEffect 钩子详解

文章目录 一、useEffect 概念二、useEffect 的基本用法1. 无依赖项2. 空依赖项数组3. 带依赖项的 useEffect 三、useEffect 的常见应用场景1. 数据获取2. 订阅与清除3. 动画与定时器 四、useEffect 的进阶用法1. 多个 useEffect2. 条件执行副作用 五、注意事项 useEffect 是 Re…

playbooks 分布式部署 LNMP

1、环境配置 ansible 服务器 192.168.10.10nginx 服务器 192.168.10.20mysql 服务器 192.168.10.21php 服务器 192.168.10.22 2、安装 ansble #192.168.10.10节点 yum install -y epel-release #先安装 epel 源 yum install -y ansible配置主机清单 …

Vue 动态改变css文件

theme: smartblue 一、背景需求 现有 Vue3 项目&#xff0c;要求点击按钮后&#xff0c;会动态加载css文件内容 二、实现过程 2.1 相关代码 假设有 blue.css 和 red.css,要求点击加载对应文件 若想切换为原版样式&#xff0c;点击 back 回退到初始样式 this is a simple text …

76.SAP ME - 归档

目录 1.归档 2.系统设置维护 3.后台处理执行 1.归档 可使用此功能将某一特定已完成产品的相关记录从活动的“在制品”(WIP) 数据库移动到归档数据库&#xff0c;这样可改进生产记录的检索。在一段时间内&#xff0c;WIP 数据库中的记录数量将增加。当系统在大量记录中进行搜…

c++ 内存管理(newdeletedelete[])

因为在c里面新增了类&#xff0c;所以我们在有时候会用malloc来创建类&#xff0c;但是这种创建只是单纯的开辟空间&#xff0c;没有什么默认构造的。同时free也是free的表面&#xff0c;如果类里面带有指针指向堆区的成员变量就会free不干净。 所以我们c增加了new delete和de…

pdf太大怎么压缩大小?这几种压缩方法操作起来很简单!

pdf太大怎么压缩大小&#xff1f;在数字化洪流席卷的当下&#xff0c;PDF文件的“臃肿”难题如同巨石般横亘于高效办公之路&#xff0c;它们不仅贪婪地吞噬着宝贵的存储空间&#xff0c;更如沉重的枷锁&#xff0c;拖曳着我们的工作进度&#xff0c;步入迟缓之境&#xff0c;试…

06 内置的整数、实数与复数

在 Python 中&#xff0c;内置的数字类型有整数、实数和复数&#xff0c;借助于标准库 fractions 中的 Fraction 对象可以实现分数及其运算&#xff0c;而 fractions 中的 Decimal 类则实现了更高精度的运算。 Python 支持任意大的数字&#xff0c;具体可以大到什么程度仅受内…

电阻液冷 可提升 3.3kV 中压负载-EAK水冷电阻器

电阻液冷 可提升 3.3kV 中压负载-EAK水冷电阻器 在工业和海洋应用中&#xff0c;水冷在削减电阻器封装方面至关重要的地方 在起重机、升降机、升降机和输送机等电机驱动应用中&#xff0c;风冷电阻器很常见&#xff0c;但在中压、高功率应用中&#xff0c;液体冷却胜出。 使…

IDEA项目的依赖(pom.xml文件)导入问题及解决

前言&#xff1a;该文章为转载&#xff0c;没有仔细的看 IDEA新建项目和pom.xml文件被修改时&#xff0c;右下角都会出现 Maven projects need to be imported&#xff08;项目需要导入依赖&#xff09; 如下&#xff0c;点击 Import Changes导入后&#xff0c;有时会一直处于…

【基础篇】Docker 概览 ONE

嗨&#xff0c;大家好&#xff01;我是小竹笋&#xff0c;一名热爱创作的工程师。今天我将带领大家一起踏上探索 Docker 的奇妙之旅。我们先从 Docker 的历史和发展说起&#xff0c;然后再看看 Docker 和虚拟机之间的区别&#xff0c;最后了解一下 Docker 在各行各业的应用情况…

数据结构算法经典题目刨析(c语言)返回单链表的倒数第 k 个节点

&#x1f493; 博客主页&#xff1a;C-SDN花园GGbond ⏩ 文章专栏&#xff1a;数据结构经典题目刨析(c语言) 一.题目描述 二.解题思路 方法一:计数器方式 先遍历链表&#xff0c;求出链表长度count倒数第k个节点&#xff0c;就是正数第count-k1个节点&#xff08;下标为count…

《系统架构设计师教程(第2版)》第13章-层次式架构设计理论与实践-02-表现层框架设计

文章目录 1. 表现层设计模式1.1 MVC模式1.1.1 三个核心模块1&#xff09;控制器 (Controller)2&#xff09;模型 (Model)3&#xff09;视图 (View): 1.1.2 过程1.1.3 优点1.1.4 应用 1.2 MVP模式1.3 MVVM模式 2. 使用XML设计表现层统一Web Form与 Windows Form的外观3. 表现层中…

⚠️ Buffer Overflow: 安全编码必备知识 ️

⚠️ Buffer Overflow: 安全编码必备知识 &#x1f6e1;️ ⚠️ Buffer Overflow: 安全编码必备知识 &#x1f6e1;️摘要引言正文内容一、缓冲区溢出基本概念 &#x1f9e9;二、常见场景及实际案例 &#x1f6e0;️2.1 利用不安全的函数2.2 堆溢出攻击 三、调试技巧 &#x1f…

算法入门:Java实现排序、查找算法

链接&#xff1a;算法入门&#xff1a;Java实现排序、查找算法 (qq.com) 冒泡/选择/插入/希尔排序代码 (qq.com) 快排/归并/堆排/基数排序代码 (qq.com)