web,apache,nginx

news2024/9/9 0:23:52

web基本概念和常识

Web:为用户提供的一种在互联网上浏览信息的服务,Web 服务
是动态的、可交
互的、跨平台的和图形化的。
Web 服务为用户提供各种互联网服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容:
Web 应用开发也经过了几代技术的不断发展,目前Web 开发依然是最重要的开发内容之一。Web 基础的技术包括超文本标记语言(HTML)和 HTTP 协议,HTML是一种呈现数据的方式(给人看的),而 HTTP 则是一组通信的标准(语法、语义、时许),可以简单的理解为 HTTP 携带 HTML。

1.web 应用:网站(广义上的PC,手机app)

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

3.web服务器(webserver):也称HTTP服务器(HTTPserver),要有 NginxApache,Tomcat 等

[root@web ~]# yum -y install httpd
[root@web ~]# systemctl start httpd

[root@web html]# ls
微信图片_20240119192230.jpg
[root@web html]# 
[root@web html]# mkdir img
[root@web html]# mv 微信图片_20240119192230.jpg ./img/

http特点

1.简单性:HTTP协议的语法相对简单,易于实现和调试。它使用基于请求-响应模式的通信方式,客户端发送请求,服务器响应请求,简单直观。

  2.无状态性:HTTP是一种无状态协议,即服务器不保存任何关于客户端的信息。每个请求都是独立的,不与之前或之后的请求相关联。

  3.可靠性较差:HTTP协议没有内置的机制来保证消息的可靠传输,例如消息确认或错误检测和重传。这些功能需要在应用程序层面实现。

  4.支持多种数据格式:HTTP支持多种数据格式,包括HTML、XML、JSON等。这使得它成为Web服务的首选协议之一。

  5.端口号为80:HTTP默认使用端口号80,因此HTTP请求和响应数据可以通过常见的网络设备(如路由器和防火墙)进行传输。

  6.明文传输:HTTP协议的传输是明文的,易于被网络攻击者窃取或篡改数据。但是,HTTPS(HTTP Secure)可以提供加密传输的安全机制。

  7.可扩展性:HTTP协议是一种可扩展的协议,允许通过HTTP头和正文中的自定义标记来定义新的数据类型和操作。

生成一个大文件

[root@web html]# dd if=/dev/zero of=/var/www/html/a.txt bs=30M count=1
记录了1+0 的读入
记录了1+0 的写出
31457280字节(31 MB)已复制,0.0634171 秒,496 MB/秒

HTTP 状态码


2xx:成功,200成功、201已经创建
3xx:重定向,304未修改
4xx:请求错误,404未找到文件、408请求超时

5xx:服务器错,500服务器内部错误、502网关错误

查看华为云主机的所有的打开的端口

[root@web html]# systemctl start firewalld
[root@web html]# firewall-cmd --list-ports

回到虚拟机本地,启动防火墙服务,就访问不到web页面了

[root@web html]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@web html]# firewall-cmd --zone=public --add-port=80/tcp --permanent
Warning: ALREADY_ENABLED: 80:tcp
success

查看防火墙打开的端口

[root@web html]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
 

apache的搭建

安装http服务

[root@http ~]# yum -y install httpd

查看安装情况以及安装的资源文件

[root@http ~]# rpm -qa | grep httpd
httpd-tools-2.4.6-99.el7.centos.1.x86_64
httpd-2.4.6-99.el7.centos.1.x86_64

查看文件目录

[root@http ~]# rpm -ql httpd
[root@http ~]# vim /etc/httpd/conf/httpd.conf 
[root@http ~]# ls /var/www/html/
启动服务

[root@http ~]# systemctl start httpd
查看端口

[root@http ~]# netstat -anlt | grep http
单独的打开某些端口或者服务,在云服务器上,不能够直接停用防火墙,可以单独打开端口

打开服务器不会马上生效,需要重启或者重载服务信息

[root@http ~]# systemctl start firewalld
[root@http ~]# firewall-cmd --zone=public --add-service=http
success
[root@http ~]# firewall-cmd --list-^C
[root@http ~]# firewall-cmd --reload
success
[root@http ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

停用防火墙或者打开指定端口
[root@http ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@http ~]# firewall-cmd --reload        启动端口
success

可以访问到

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

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

浏览器访问:192.168.2.36

静态文件如果无法在浏览器上访问,就一定无法加载在页面上

源码编译安装nginx

下载源码包

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

-rw-r--r--.  1 root root  1.2M 5月  29 22:30 nginx-1.26.1.tar.gz
[root@nginx ~]# tar -zxvf nginx-1.26.1.tar.gz 
[root@nginx ~]# yum -y install gcc gcc-c++ 
[root@nginx ~]# yum -y install make openssl-devel pcre-devel
编译安装nginx

[root@nginx 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@nginx nginx-1.26.1]# useradd -s /bin/nologin -M nginx

[root@nginx nginx-1.26.1]# tree /usr/local/nginx/
/usr/local/nginx/
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── html
│   ├── 50x.html
│   └── index.html
├── logs
└── sbin
    └── nginx

4 directories, 18 files
[root@nginx nginx-1.26.1]# cd /usr/local/nginx/
[root@nginx nginx]# ls
conf  html  logs  sbin

启动服务

[root@nginx nginx]# ./sbin/nginx
[root@nginx nginx]# netstat -lnput | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4800/nginx: master  
开放端口或者服务

[root@nginx nginx]# systemctl start firewalld
[root@nginx nginx]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@nginx nginx]# firewall-cmd --reload        重载防火墙
success

主配置文件

[root@nginx nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/bin/
[root@nginx nginx]# nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
^C
[root@nginx nginx]# nginx -s stop 
[root@nginx nginx]# netstat -lnput | grep nginx
[root@nginx nginx]# nginx
[root@nginx nginx]# netstat -lnput | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6825/nginx: master  

之所以指令能在命令行使用,是因为在$PATH目录中能找到这个可执行文件或者是这个可执行文件的链接文件

启动和关闭nginx服务

./nginx         ./nginx -s stop

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

./nginx -s reload

脚本 启动nginx服务

#!/bin/bash
/usr/local/sbin/nginx &> /dev/null
if [ $? -nq 0 ];then
        echo "nginx正在执行,或者80端口被占用"
fi
[root@nginx nginx]# bash ~/nginx.sh
nginx正在执行,或者80端口被占用
 

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

重启一下,然后使用systemctl启动nginx就可以了

[root@nginx ~]# systemctl start nginx

添加监控块,修改配置文件

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

 48         location / status{
 49             stub_status on;
 50             access_log off;
 51         }   
[root@nginx ~]# systemctl reload nginx.service

访问192.168.2.37/status

Active connections: 2         活动的连接数
server accepts handled requests        累计接受,处理,请求的连接数
 2 2 2 
Reading: 0 Writing: 1 Waiting: 1         正在读取,写入和等待的连接数

nginx反向代理

  303  wget https://nginx.org/download/nginx-1.26.1.tar.gz
  304  tar -zxvf nginx-1.26.1.tar.gz 
  305  tar -zxvf nginx-1.26.1.tar.gz 
  306   yum -y install gcc gcc-c++
  307  yum -y install make openssl-devel pcre-devel
  308  cd nginx-1.26.1
  309  ./configure --prefix=/usr/local/nginx
  310  make && make install

  319  firewall-cmd --zone=public --add-port=80/tcp --permanent
  321  firewall-cmd --reload
  322  /usr/local/nginx/sbin/nginx 
  323  vim /usr/local/nginx/conf/nginx.conf


 

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

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

相关文章

泰迪智能科技大数据实验室——陕西省高校合作成功案例

近年来,陕西省紧跟国家大数据发展战略,积极推进大数据产业发展。在政策扶持、产业布局、技术创新等方面取得显著成效。泰迪智能科技大数据实验室立足陕西,携手西安邮电大学、西安财经大学、陕西科技大学镐京学院、宝鸡文理学院、渭南师范学院…

编译期链接时共享库搜索路径优先级实验

编译期链接时共享库搜索路径优先级实验 前言实验环境目录说明准备工作单独测试不配置路径默认路径LIBRARY_PATH-L 优先级测试默认路径和LIBRARY_PATH-L和默认路径 DEBUG模式编译器配置详细信息链接器详细信息DEBUG总结验证 默认路径>LIBRARY_PATH原因附录库文件源码主程序源…

bugku-web-ctf-变量1

<?php error_reporting(0); include "flag1.php"; highlight_file(__file__); if(isset($_GET[args])){$args $_GET[args];if(!preg_match("/^\w$/",$args)){die("args error!");}eval("var_dump($$args);"); } ?> error_r…

Apache、nginx

一、Web 1、概述 Web&#xff1a;为⽤户提供的⼀种在互联⽹上浏览信息的服务&#xff0c;Web 服务是动态的、可交互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联⽹服务&#xff0c;这些服务包括信息浏览服务&#xff0c;以及各种交互式服务&#xff0c;包括聊天、购物…

React基础知识 精简全面 推荐

这篇博文主要对一些刚入门react框架的同学&#xff0c;以及对react基本知识进行巩固的&#xff0c;最后就是精简一下基本知识&#xff0c;以方便自己查看&#xff0c;感谢参考&#xff0c;有问题评论区交流&#xff0c;谢谢。 目录 1.JSX 2.Props 和 State 3.组件生命周期…

“八股文”在实际工作中是助力、阻力还是空谈?

程序员面试中的“八股文”&#xff1a;助力、阻力还是空谈&#xff1f; 在当前的技术行业&#xff0c;程序员的招聘面试过程中频繁出现对“八股文”的考核。“八股文”通常指的是关于编程知识的标准化回答&#xff0c;这些问题在网络上大量流传&#xff0c;并被求职者反复背诵…

Socket通信(C++)

文章目录 什么是SocketSocket通信过程C Socket通信APIint socket(int domain, int type, int protocol);int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);struct sockaddrstruct sockaddr_unstruct sockaddr_in / struct sockaddr_in6 int connect(int …

IP Fabric三层路由

IP Fabric指的是在IP网络基础上建立起来的Overlay隧道技术。即为基于胖树的SpineLeaf拓扑结构的IP Fabric组网图。 在这种组网方式中&#xff0c;任何两台服务器间的通信不超过3台设备&#xff0c;每个Spine和Leaf节点全互连&#xff0c;可以方便地通过扩展Spine节点来实现网络…

Godot学习笔记6——数组和for

一、定义一个数组 在Godot中&#xff0c;定义一个数组的关键字也是“var”&#xff0c;数组里面的内容使用方括号括起来。在没有限定类型时&#xff0c;我们可以放入任何类型的数据&#xff1a; 我们甚至可以将另一个数组放入此数组中&#xff1a; 和其他类型的变量类似&#…

【数据结构】包装类泛型

1.包装类 在 Java 中&#xff0c;由于基本类型不是继承自 Object &#xff0c;为了在泛型代码中可以支持基本类型&#xff0c; Java 给每个基本类型都对应了 一个包装类型。 1.1.基本的数据类型对应的包装类 1.2装箱和拆箱 //装箱int a10;Integer cInteger.valueOf(a);System.…

鸿蒙应用框架开发【简单时钟】 UI框架

简单时钟 介绍 本示例通过使用ohos.display接口以及Canvas组件来实现一个简单的时钟应用。 效果预览 使用说明 1.界面通过setInterval实现周期性实时刷新时间&#xff0c;使用Canvas绘制时钟&#xff0c;指针旋转角度通过计算得出。 例如&#xff1a;"2 * Math.PI / …

Synchronized的锁升级过程是怎样的?

文章目录 一、Synchronized的使用1、修饰实例方法2、修饰静态方法3、修饰代码块4、总结&#xff1a; 二、Monitor1、Java对象头1.1 32 位虚拟机的对象头1.2 64位虚拟机的对象头 2、Mark Word 结构3、Moniter4、Synchronized 字节码5、轻量级锁6、锁膨胀7、自旋优化8、偏向锁9、…

Python for循环迭代原理(迭代器 Iterator)

在使用Python时&#xff0c;我们经常会使用for循环来访问容器对象&#xff08;列表、字符、字典等&#xff09;中的元素。其幕后实际是通过迭代协议来完成的&#xff0c;迭代是一种依次访问对象中元素的方式&#xff0c;for循环在对象上调用iter()函数生成一个迭代器&#xff0…

从后端开发视角认识向量数据库

以ChatGPT为代表的大语言模型应用自问世以来已经火了好几年。在这期间国内外类似产品层出不穷&#xff0c;甚至公司内部团队都开发了好几个AI小助手。刚好最近看了几篇关于大语言模型应用开发的文章&#xff0c;借此了解了一下应用层面的基本知识&#xff0c;也算是接触到了大语…

轻松入门Linux—CentOS,直接拿捏 —/— <2>

一 、权限问题详细讲解 读写的权限可以分别写成 r, w, x 总共有九个权限&#xff0c;可以分组三大组分别是&#xff1a; user&#xff1a;当前文件所属用户的权限 group&#xff1a;与当前文件所属用户同一组的用户权限 others&#xff1a;其他用户的权限 故使用 u, g, o 来代表…

Qt Creator 与 ESP-IDF QEMU 模拟器使用指南

标题: Qt Creator 与 ESP-IDF QEMU 模拟器使用指南 概要: 本文为开发者提供了使用 Qt Creator 和 ESP-IDF QEMU 模拟器进行 ESP32 开发的详细指南&#xff0c;包括环境准备、项目创建和编译、模拟器设置、编程和调试等方面的内容。通过本指南&#xff0c;可以快速上手 Qt Crea…

bean管理

获取bean bean作用域 第三方bean

如何使用虚拟机如何安装 Kali Linux ?

1.下载虚拟机&#xff1a;https://www.virtualbox.org/wiki/Downloads 选择你的系统版本 2.下载kali linux系统镜像&#xff1a;https://www.kali.org/get-kali/#kali-virtual-machines 全部下载完成后&#xff0c;我们会得到以下文件&#xff01; 1.压缩Kali Linux压缩包 2.安…

OpenCV C++的网络实时视频流传输——基于Yolov5 face与TCP实现实时推流的深度学习图像处理客户端与服务器端

前言 在Windows下使用TCP协议&#xff0c;基于OpenCV C与Yolov5实现了一个完整的实时推流的深度学习图像处理客户端与服务器端&#xff0c;为了达到实时传输的效果&#xff0c;客户端使用了多线程的方式实现。深度学习模型是基于onnxruntime的GPU推理。&#xff0c;实现效果如…

跨境电商网红营销SOP流程2.0丨出海笔记

之前几位大神已经在出海笔记分享过网红营销一些很落地的干货&#xff0c;无论是想自己找红人还是找Agency都很有必要了解下这里面的流程的&#xff0c;下面我大概总结了一个SOP2.0 供大家快速上手&#xff1a; 以上是网红营销的SOP&#xff0c;做到以上部分基本60分没问题了…