Nginx-高性能Web服务器

前言:
平时总听hex说Nginx服务器,也经常找他解决项目上的nginx配置,但自己一直不懂,不懂就学。
听他说:nginx最重要是 location url 配置( 正则)、反向代理与负载均衡,平时项目用这些比较多。

其实服务器上部署了什么服务,就称服务器为XX服务器,如 Nginx服务器,Apache服务器,Tomcat服务器、JBoss服务器、Weblogic服务器 (Apache、 Tomcat 、JBoss、Weblogic异同)(Nginx与Apache的区别)。

Nginx是一个web服务器软件(2023年09月 Web 服务器排行榜 ),网站前端部署在服务器上,其实是部署在服务器的Nginx软件上。之前,牛腩新闻发布系统部署在IIS,而Nginx现在用的多,因为它小且高效

Nginx基础

  • 安装

nginx安装在linux系统上,而linux系统在控制一个服务的时候是通过信号量。所以,控制部署在服务器上的nginx服务的时候通过信号量。
nginx也可以安装在windows系统,但不多。(windows下的安装详解)

  • Nginx 信号控制与进程管理

网站依托Nginx服务器运行,在操作的过程中,不能立刻down掉。
例如网站正在有人支付,突然被关掉了,不合适,通过启动参数可以等待工作线程完成后,在关闭主线程。
在这里插入图片描述

# Kill -信号选项 nginx的主进程号
Kill -HUP 4873

Nginx应用

  • Nginx虚拟主机配置

打开nginx的conf文件,server为虚拟主机

# 全局区
worker_processes 1; # 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数Event {
# 一般是配置nginx连接的特性
# 如1个work能同时允许多少连接worker_connections  1024; # 这是指 一个子进程最大允许连1024个连接
}http {  #这是配置http服务器的主要段Server1 { # 这是虚拟主机段listen 8080; #端口server_name 192.168.1.204; #域名location / {root /var/www/html; #根目录index index.html;access_log  logs/proxy.access.log  main;}}Server2 {}
}
  • Nginx 配置文件

通过修改nginx配置,让部署在nginx服务器上的网站能被外界以不同的方式被访问。
server及location的配置分为三种:location = patt {} [精准匹配]、location patt{} [一般匹配]、location ~ patt{} [正则匹配]

在这里插入图片描述

  • Nginx日志分割

nginx的访问日志一般按照日期进行分割,一旦nginx有问题方便定位,通过 shell+定时任务+nginx信号管理,完成日志按日期存储

	 #!/bin/bashlog_base="/usr/local/nginx/logs"log_path=${log_base}/$(date -d yesterday +"%Y")/$(date -d yesterday +"%m")mkdir -p $log_pathmv $log_base/access.log $log_path/access_$(date -d yesterday +"%Y%m%d").logkill -USR1 `cat /usr/local/nginx/logs/nginx.pid`#echo access_$(date -d yesterday +"%Y%m%d").log
  • Nginx与Gzip设置

在这里插入图片描述
浏览器—请求----> 声明可以接受 gzip压缩 或 deflate压缩 或compress 或 sdch压缩
从http协议的角度看–请求头 声明 acceopt-encoding: gzip deflate sdch
服务器–>回应—把内容用gzip方式压缩---->发给浏览器
浏览<-----解码gzip-----接收gzip压缩内容----

# gzip配置的常用参数
gzip on|off;  #是否开启gzip
gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied          # 设置请求者代理服务器,该如何缓存内容
gzip_types text/plain  application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
gzip_vary on|off  # 是否传输gzip压缩标志

Nginx实战

  • Nginx 浏览器缓存配置

服务器响应文件内容时,同时响应etag标签(内容的签名,内容一变,它也变)和 last_modified_since 2个标签值
浏览器下次去请求时,头信息发送这两个标签, 服务器检测文件有没有发生变化,如无,直接头信息返回 etag,last_modified_since
浏览器知道内容无改变,于是直接调用本地缓存,这个过程,也请求了服务器,但是传递的内容极少,对于变化周期较短的,如静态html,js,css,比较适于用这个方式

	location ~ .*\.(jpg|png|gif|bmp)$ {expires 30d;        }
  • Nginx rewrite配置在location中能够被访问更加灵活

语法规则:

	if  (条件) {}  设定条件,再进行重写 set #设置变量return #返回状态码 break #跳出rewriterewrite #重写

通过rewrite判断浏览器重写

	 if ($http_user_agent ~ MSIE) {#return 404;rewrite ^(.*)$ /ie.html break;}
  • Nginx+memcache 组合

Nginx优化

  • Nginx连接数优化
  • Nginx 反向代理与负载均衡
  • Nginx集群

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

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

相关文章

android AudioRecord

AudioRecord是Android中用于音频录制的类&#xff0c;它的主要作用是捕获来自设备麦克风或其他音频源的音频数据&#xff0c;并将其保存为PCM格式的音频流&#xff0c;以供后续处理或存储。 以下是关于AudioRecord的一些常见用途和基本使用方法&#xff1a; 作用和用途&#…

百度千帆大模型文心一言api调用

注册百度智能云账号并申请文心千帆大模型资格 https://login.bce.baidu.com/ https://cloud.baidu.com/product/wenxinworkshop 创建应用用于获取access_token 创建应用成功后,可以获取到API Key和Secret Key 获取access_token curl https://aip.baidubce.com/oauth/2.0/to…

使用电力系统稳定器 (PSS) 和静态 VAR 补偿器 (SVC) 提高瞬态稳定性(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

js实现websocket服务端和客户端

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

vue2必备知识点

1、生命周期钩子是如何实现的? 生命周期描述beforeCreatevue实例初始化后&#xff0c;数据观测&#xff08;data observer&#xff09;和事件配置之前。data、computed、watch、methods都无法访问。createdvue实例创建完成后立即调用 &#xff0c;可访问 data、computed、wat…

华为云云耀云服务器L实例评测| ultralytics最先进模型YOLOv8深度学习AI训练

目录 前言 登录服务器 安装pyhton 部署yolov8 安装Pytorch 下载权重文件 训练模型 模型使用 前言 前几期我们在云耀云服务器L实例上分别使用docker和直接在centos上部署了yolov5识别API&#xff0c;前端项目vue&#xff0c;后端项目.net Core Web Api,但是从监控图上…

unity 实现多个物体或单个物体 让其单击物体让其显示再次单击让其隐藏

unity 实现单击物体让其显示或隐藏&#xff0c;再次单击显示或隐藏 using System.Collections; using System.Collections.Generic; using Unity.Burst.CompilerServices; using UnityEngine; using UnityEngine.EventSystems; public class ToggleObjects : MonoBehaviour {…

教育领域数据可视化:点亮知识之路

教育领域一直以来都在不断进步和演变&#xff0c;而数据可视化技术正在为这一领域带来一场革命。在过去的几年里&#xff0c;教育者们越来越意识到&#xff0c;通过将教育数据转化为可视化图表和图形&#xff0c;可以更好地理解学生的表现、需求和趋势&#xff0c;从而提供更好…

看好多人都在劝退学计算机,可是张雪峰又 推荐过计算机,所以计算机到底是什么样 的?

张雪峰高考四百多分&#xff0c;但是他现在就瞧不起400多分的学生。说难听点&#xff0c;六七百分的 热门专业随便报谁不会啊&#xff1f; 计算机专业全世界都是过剩的&#xff0c;今年桂林电子科技&#xff0c;以前还是华为的校招大学&#xff0c;今年 计算机2/3待业。这个世…

Scanner类用法(学习笔记)

Scanner类用法&#xff08;学习笔记&#xff0c;后续会补充&#xff09; 1.next&#xff08;&#xff09;用法 package com.yushifu.scanner; import java.util.Scanner;//util java工具包 //Scanner类&#xff08;获取用户的输入&#xff09; Scanner s new Scanner&#…

电子词典项目

目录 目录 头文件&#xff1a;dict.h: 源文件&#xff1a;dict.c: 服务器测试文件&#xff1a;serDict.c: 客户端测试文件&#xff1a;cliDict.c: 头文件&#xff1a;dict.h: #ifndef __DICT_H__ #define __DICT_H__ #include<myhead.h> #include<sqlite3.h>#de…

Android设备关机和重启分析

一、简介 重启(reboot) 使设备重新启动,即关闭设备并重新启动它。在重启期间,设备将经历完整的启动过程,包括重新加载操作系统和其他系统组件。这可以解决一些临时的系统问题,也可以应用系统更新或配置更改。 关机(shutdown) 使设备完全关闭,即停止设备的所有运行和…

06乐观锁与悲观锁

乐观锁与悲观锁 悲观锁: 悲观锁比较适合插入数据,简单粗暴但是性能一般 乐观锁: 比较适合更新数据, 性能好但是成功率低(多个线程同时执行时只有一个可以执行成功),还需要访问数据库造成数据库压力过大 模拟乐观锁实现流程 第一步: 数据库中增加商品表t_product并插入一条数…

MySQL索引使用

验证索引效率 在讲解索引的使用原则之前&#xff0c;先通过一个简单的案例&#xff0c;来验证一下索引&#xff0c;看看是否能够通过索引来提升 数据查询性能。在演示的时候&#xff0c;我们还是使用之前准备的一张表 tb_sku , 在这张表中准备了1000w 的记录。 这张表中id为主…

PostgreSQL 逻辑复制搭建

文章目录 前言1. 环境准备1.1 环境介绍1.2 发布端参数配置1.3 订阅端参数配置 2. 逻辑复制搭建2.1 创建逻辑复制用户2.2 发布节点造测试表2.3 发布节点授权2.4 创建 PUBLICATION2.5 订阅节点2.6 添加复制表2.7 删除复制任务 前言 本篇文章介绍 PostgreSQL 的搭建过程&#xff…

Linux抓包工具tcpdump

一、介绍 tcpdump是一个抓包工具&#xff0c;用于实时捕获和分析网络流量。它通常在unix和linux操作系统上使用。tcpdump能够捕获流经网络接口的数据包&#xff0c;并显示或保存它们以供进一步分析。它提供有关每个数据包的详细信息&#xff0c;包括源IP地址、目标IP地址、使用…

EDA(Exploratory Data Analysis)探索性数据分析

EDA(Exploratory Data Analysis)中文名称为探索性数据分析&#xff0c;是为了在特征工程或模型开发之前对数据有个基本的了解。数据类型通常分为两类&#xff1a;连续类型和离散类型&#xff0c;特征类型不同&#xff0c;我们探索的内容也不同。 1. 特征类型 1.1 连续型特征 …

每日一题(两数相加)

每日一题&#xff08;两数相加&#xff09; 2. 两数相加 - 力扣&#xff08;LeetCode&#xff09; 思路 思路&#xff1a; 由于链表从头开始向后存储的是低权值位的数据&#xff0c;所以只需要两个指针p1和p2&#xff0c;分别从链表的头节点开始遍历。同时创建一个新的指针new…

全球汽车安全气囊芯片总体规模分析

安全气囊系统是一种被动安全性的保护系统&#xff0c;它与座椅安全带配合使用&#xff0c;可以为乘员提供有效的防撞保护。在汽车相撞时&#xff0c;汽车安全气囊可使头部受伤率减少25%&#xff0c;面部受伤率减少80%左右。 汽车安全气囊芯片是整个系统的控制核心&#xff0c;并…

给微信小程序添加隐私协议

前些日子&#xff0c;微信官方针对用户的安全信息又进行了增强&#xff0c;这次更新几乎要求所有的小程序都需要进行整改&#xff0c;只要是涉及到用户的隐私的小程序都需要进行整改&#xff0c;这次整改是强制性的。 点开相关指引之后会跳转到下面的链接&#xff1a;参考链接…