首页 > 系统相关 >Linux网络服务

Linux网络服务

时间:2024-05-24 20:52:48浏览次数:25  
标签:java 请求 配置文件 keepalived Linux http php 网络服务

1.http协议版本

 2.http请求

请求头

  • HTTP: 用户的请求与响应被后格式与定义
  • HTTP请求豹纹
 请求起始行: GET / (uri) HTTP/1.1  请求头(head): User-Agent: 客户端代理(浏览器) Host: 域名 空行 请求豹纹主体(body): POST
  • HTTP响应报文
响应报文的起始行: HTTP/1.1 状态码 响应头: Server(web服务器) 空行 响应豹纹的主体(body): 文件内容
  • 状态码 

 3.web服务

  • WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站.
  • WEB中间件: 等同于WEB服务
  • 中间件:范围更加广泛,指的负载均衡之后的服务.
  • 数据库中间件:数据库缓存,消息对列

4.Ngx处理用户请求流程

目录结构

主配置文件详解

 子配置文件

 Nginx处理用户请求流程

使用域名访问网站流程: (1)DNS解析:域名-->IP地址 (2) 连接80端口: tcp3次握手与网站的80端口建立连接 (3)http请求豹纹:请求方法,URI,HOST等信息
  • GET /index.html
  • HOST: cxk.oldboylinux.cn
  • User-Agent: Chrome/xxx

(4)ngx处理:

  • http请求,http区域处理
  • 不同的server{} 区域(子配置文件)处理.
  • 端口
  • 域名:用户请求的域名与子配置文件server_name进行匹配.
  • 匹配成功,就让对应的子配置文件(server{})处理
  • 根据子配置文件的,root,location规则,index进行处理查找文件.
  • 把找到的文件发回给用户.
(5)http响应豹纹:
  • 状态码:200 ok
  • server信息
  • 其他信息
  • 文件内容
(6)客户收到文件内容,浏览器解析,进行展示.

 5.虚拟主机

 12。访问格式

 13.负载均衡选择

 13.LNMP

LNMP原理(动态,静态) LNMP搭建流程 MariaDB (查看所有的库,查看所有的用户;) (创建库,创建用户;) PHP(会修改PHP运行的用户) Ngx(配置转发规则) LNMP排错流程. testinfo.php 检查ngx能否把动态请求转发给php,php能否解析. testmysql.php 检查php代码是否能够以指定的用户,密码,连接指定的库. 代理: proxy_pass指令:把用户的请求转发到指定的节点. proxy_set_header 指令:用于修改代理向后端节点发出请求的时候 请求头 . 14.负载均衡 vs 反向代理

 15.轮询算法

 16.HA高可用服务

  •  keepalived是基于VRRP协议实现高可用.
  • VRRP虚拟路由器冗余协议,最开始是给网络设备实现高可用.目前keepalive实现vrrp协议,通过vrrp实现高可用.
  • 分为主,备一般是2个节点.主备之间通过vrrp协议发送数据包沟通.
  • 主给备定期发送数据包,备收到数据包表示主还活着,备无法收到数据包,表示主挂了,备胎转正了,接管用户请求流量.
  • vrrp协议使用组播的ip. 224.xx.xx.xx
keepalived配置文件分类

 17.脑裂故障

现象:主备都有vip. 原因:
  • 备认为主挂了,接管资源生成VIP.实际上主并没有挂,仍有VIP.
  • 有很多原因可以导致脑裂,开启防火墙,selinux,keepalived配置,物理线路.
解决:
  • 监控(备节点监控),只要备节点有vip就告警.
  • 更狠一点监控备节点只要有vip,远程控制主节点,只要备节点认为主挂了,那就让他真的挂了.
 18.案例-keepalived基于主机高可用软件
  • keepalived只会在主机挂了,网络断开后,才会进行主备切换.
  • 默认情况下keepalived不会监控某个服务.
  • 项目目标: 某个服务关闭了,keepalived就进行主备切换.
项目步骤:
  1. 老男孩教育-王牌VIP班书写脚本,过滤服务进程数,端口数量,检查是否运行.
  2. 然后进行判断如果服务没有运行,则关闭keepalived.
  3. 修改keepalived配置文件,通过keepalived调用这个脚本.
小结
  1. 书写脚本: 获取服务端口数/进程数,通过if进行判断,如果端口或进程数为0,则关闭keepalived.
  2. 修改keepalived配置:
  • 定义脚本 vrrp_script 名字 { script 脚本路径与名字 ....}
  • 调用脚本 vrrp_instance中通过track_script
  1. 调试 

19.非抢占模式

  • keepalived 主备默认是抢占式,主挂了,备接管.主恢复,不希望主重新抢回资源.
  • 配置非抢占式模式即可.

 使用流程

  1. 1. 2个节点状态是备
  2. 2. 配置nopreempt选项

 20.双主模式

应对高并发的时候设置的双主模式.

 21.Java容器

  • JVM: java 虚拟机中,运行java代码的地方.
  • JRE: java Runtime Enviroment java运行环境 . 提供jvm环境,java命令.
  • JDK: Java Development Kit java开发环境 , jvm+jre+额外功能

 22.Java应用负载高排查方法

 

 23.Java会话共享方案

 

 24.

前端,后端下载的代码是源代码 前端代码需要编译,nodejs环境编译-->静态资源(html,css,js)-->nginx中. 后端代码java, 通过maven/gradle编译-->war包/jar包   运行

25

 26.常见动态网站的架构

  • PHP: LNMP(LEMP), LAMP, WNMP/WAMP (PՎՎʖPHP,WՎՎʖWindows,AՎʔApache)
  • Java: LNMT(Tomcat,Jetty,Weblogic,Jboss)
  • Python: LNMP(Python,uwsgi)
  • Golang: LNMG(Golang)
  • C/CՎҡ: LNM?........ 

27.LNMP处理动态请求流程

 28.LNMP排错

  • 排除法.
  • Linux:防火墙,selinux.
  • Nginx:检查配置,处理流程检查. 测试ngx.
  • PHP:处理动态请求. 测试:ngx+php
  • MySQL: 测试php+数据库
  • 老男孩教育-王牌VIP班背景:ngx部署wordpress(php)站点报错了,说说排查流程.
  • 步骤:
  1.  1. 检查ngx是否正常运行.
检查端口
检查进程
检查配置
站点目录下面创建 test.html 写入内容
curl 访问
  1. 2.ngx是否把动态页面转发php,php是否解析.
站点目录下
testinfo.php
<?php
phpinfo();
?>
测试完成,务必删除,否则网站信息泄漏
  1. 3.检查php连接数据库是否正常(测试数据库用户名和密码)

 29.负载均衡选型

  • upstream模块,upstream指令实现负载均衡.创建分组/池塘,proxy_pass中使用即可.
[root@lb01 /etc/nginx/conf.d]# cat 
lb.oldboylinux.cn.conf 
upstream lb_pools {
 server 10.0.0.7:80;
 server 10.0.0.8:80;
}
server {
 listen 80;
 server_name lb.oldboylinux.cn;
 error_log /var/log/nginx/lb-error.log notice;
 access_log /var/log/nginx/lb-access.log main;
 location / {
   proxy_pass http:Վˌlb_pools;
   proxy_set_header Host $http_host;
   proxy_set_header X-Forwarded-For 
$proxy_add_x_forwarded_for;
 }
}

 30.Nginx处理用户请求流程-静态-无负载

 31.Nginx处理用户请求-含负载均衡

https://www.processon.com/view/link/619d93310e3e74287fe4e3de

 32.Nginx平滑升级

 33.Nginx重定向

(1)return

  • return + 状态码 与 location 或 if.
  • 实现跳转
  • 返回指定的状态码.
  • 域名跳转(新旧域名)
  • httpՎՎʖhttps跳转 

 (2)if判断

  • if用于进行判断,通过ngx中变量.
  • 可以比大小.
  • 也可以进行等于,不等于.
  • 也可以进行匹配(过滤). 

设置网站是否为维护状态:如果维护状态:返回503状态码,否则正常访问. 流程
  • 设置标记$flag 默认是0.
  • 判断如果$flag的值是1则网站返回503

 (3)rewrite

  • rewrite正则用于匹配用户请求的uri.
  • 命令的格式与sed 's###g' 类似,实现替换功能,rewrite替换url内容.(改写)

 rewrite各种标记

 34.https

  • 基于http协议,传输的时候进行加密.
  • 如果不使用https,数据传输都是明文的.
  • 应用场景:
    • 目前大部分的业务都是使用https加密.
    • 企业想使用http 2.0 基于https.
  • 部署https加密的流程
  1. 域名 *.jd.com www.jd.com
  2. 根据域名申请https证书(私钥与公钥(ca证书)),自己创建.
  3. 进行配置web/lb.

 35.网站集群https配置

 36.

 37.tomcat目录结构

 38.书写systemctl管理配置文件进行管理

  • 服务管理指令.
  • 存放在/usr/lib/systemd/system/xxxx.service
  • 分为3个部分.
  • 修改或设置systemctl配置要进行重新加载配置

 39.运行代码

 40.配置文件

 规范tomcat访问日志格式

 41.to'mcat+ngx架构

(1)没有使用动静分离

 (2)动静分离

 42.命令

(1)jps

jps-->java ps 命令,只显示java进程. 类似于 ps -ef |grep java (2)jstack jstack查看java进程内部信息,线程信息. 进程: 占空间,占系统资源,厂房. 线程: 厂房里面的工人,处理与用户的请求. 需要代码使用多线程技术. 通过ps aux 查看进程是否支持线程(是否使用多线程技术) (3)jmap jmap查看或导出jvm信息 查看jvm使用情况 (4)mat分析工具 jvm内存映像文件,在windows/mac/ubuntu系统下通过MemoryAnalyzer Tool (MA/MAT) 1. 需要jdk环境 2. 软件包解压即可使用 3. MemoryAnalyzer.exe 43.tomcat安全优化

标签:java,请求,配置文件,keepalived,Linux,http,php,网络服务
From: https://www.cnblogs.com/anni-qianqian/p/18199738

相关文章

  • 【Linux学习】进程间通信 (1) —— 管道
    下面是有关进程通信中管道的相关介绍,希望对你有所帮助!小海编程心语录-CSDN博客1.进程通信的基本概念1.1概念进程间通信简称IPC ,指两个进程之间的通信。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中Socket和......
  • Linux-Nginx安装及启动命令
    目录1、安装依赖2、nginx安装3、防火墙打开80端口4、nginx启动停止1、安装依赖yum-yinstallgcc-c++ yum-yinstallpcrepcre-devel yum-yinstallzlibzlib-devel yum-yinstallopensslopenssl—devel2、nginx安装mkdir/usr/local/src/nginxcd......
  • Windows下分卷压缩后到Linux进行解压的方法
    windows分卷压缩后linux解压缩 Linux服务器在内网,中途隔了一层堡垒机。文件太大,堡垒机对此有限制,需要在Windows上分包,然后上送到Linux上进行合并解压。我探索出来的办法有两个,以下依次介绍:1、WinRAR+7za命令WinRAR上需要选择压缩格式为zip,输入分卷大小: 然后将分卷都传......
  • Linux系统中如何查看磁盘情况
    Linux不像windows系统那样方便的图形界面,特别是作为服务器使用的时候,只有命令行可以使用。我有个云服务器平时用来做一些数据分享用的,最近想看看磁盘和其中文件的占用情况,于是搜索并学习了一些查看磁盘空间信息的命令,命令虽然简单,但对我自己来说还是有些新的东西值得记录。1.df......
  • orangepi zero2在linux5.4以上内核使用ili9341
    背景根据orangepizero2用户手册说明,linux5.13内核不能使用modprobefbtft_device驱动spilcd查看linux内核源码提交记录,发现在v5.4-rc3中删除了fbtft_device.c文件commit如下staging/fbtft:Removefbtft_deviceCommitc440eee("Staging:fbtft:Switchtothegpiode......
  • Linux系统postdrop服务进程持续增加导致无法登录
    临时解决方案:#servicepostfixstatus#servicesendmailstatus#servicepostfixstop[root@wign~]#ps-ef|grepsendmail|wc-l3038[root@wign~]#ps-ef|greppostdrop|wc-l3162停止postdrop服务,杀掉postdrop的进程#psaux|greppostdrop|grep-vgrep|cut-c9-15|xargs......
  • Linux安装卸载MySQL
    大家好,我是Java陈序员。今天,给大家分享下在Linux环境中如何安装卸载MySQL.关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。MySQL安装准备一台Linux服务器下载Linux版MySQL安装包下载地址:https://downloads.m......
  • GDB对Linux信号的处理方式
    前言在软件开发过程中,调试工具是程序员不可或缺的助手。GDB(GNUDebugger)作为一个强大的调试器,广泛应用于Linux系统中的C/C++程序调试。然而,信号处理机制的复杂性常常给调试带来挑战。特别是在处理异步和同步信号时,不同的信号处理方式对程序执行流和调试工具的行为会产生显......
  • Bash反弹shell & 搭建网页服务器 & 文件描述符学习 & ssh连接vm虚拟机 & sftp进行文件
    环境:kali:┌──(kali㉿kali)-[~/Desktop]└─$cat/proc/versionLinuxversion6.0.0-kali5-amd64([email protected])(gcc-12(Debian12.2.0-9)12.2.0,GNUld(GNUBinutilsforDebian)1.建立一个简单的链接进行nc,可以进行两个端口通信!#首先使用nc监听......
  • C++Linux系统编程——文件和目录操作函数
    stat函数(重要)#include<sys/types.h>#include<sys/stat.h>#include<unistd.h>​intstat(constchar*path,structstat*buf);intlstat(constchar*pathname,structstat*buf);功能: 获取文件状态信息 stat和lstat的区别:   当文件是一个符号......