首页 > 系统相关 >nginx及常用部署方式与性能优化

nginx及常用部署方式与性能优化

时间:2023-06-10 15:44:18浏览次数:44  
标签:http epoll 部署 server nginx master proxy 优化

nginx做反向代理服务器

nginx配置:

upstream backend_server{
    server 123.34.34.34 weight=1
    server 123.34.34.35 weight=1
}
server{
  location / {
    proxy_pass http://backend_server;
    proxy_set_header Host $http_hosti:$http_host:$proxy_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarder-For $~~~~~~~~~~
    proxy_http_version 1.1; -- 长连接
    proxy_set_header Connection "";-- 长连接
  }
}

H5 -》 nginx -》 多个服务器  -》 

 

nginx和服务之间默认是短连接,怎么样修改成长连接:

proxy_http_version 1.1

 netstat -an |grep IP |wc -l 查看连接数

 

高性能原因

一、epoll 

  1. java BIO 阻塞式进程模型
    1. client和server 通过socket连接;网络发送慢 client就写不了了。
  2. linux select模型 多路复用
    1. server 监听100个客户端连接是否有变化,有变化就唤醒自己,循环遍历100个链接,找到发生变化的,read操作
    2. 好处是read和write立马能返回
    3. 轮询太复杂
  3. epoll模型
    1. server监听
    2. 记录监听的回调函数
    3. 不用轮训

nginx就用epoll模型

二、master-worker 进程

ps -ef |grep nginx

能看到父子进程

 master是管理的

worker是实际处理客户端的进程

master启动epoll模型

工作方式:

  • 启动master
  • 在master创建scoket的文件句柄
  • scoke tlisten在80端口
  • master启动epoll多路复用
  • client收到tcpIp握手时的connect
  • epoll收到了
  • master让worker去处理

三、协程机制

golong就是基于协程的。

一个线程可以有多个协程。

没有cpu的切换,就切换内存。

不需要加锁。

 

标签:http,epoll,部署,server,nginx,master,proxy,优化
From: https://www.cnblogs.com/jiangym/p/17471350.html

相关文章

  • redis集群部署(运维笔记)
    Redis是一个高性能的NoSQL数据库,由于其高性能和可靠性,越来越多的企业开始使用Redis。在生产环境中,Redis集群是必不可少的,因为它可以提供高可用性和可扩展性。本文将介绍如何在Linux环境下部署Redis集群。1.安装Redis首先,需要在每个节点上安装Redis。可以使用以下命令从Redis官方......
  • NGINX配置详解
    NGINX配置详解关于ngx虽然一直在用,但是对其配置及详细作用有些一知半解,本周趁有时间刚好一起梳理下。本篇文章将包括常用的ngx功能,如代理及负载均衡等,争取内容尽量全面丰富一些。什么是NGXNginx是开源的轻量级Web服务器、反向代理服务器,以及负载均衡器和HTTP缓存器。其特......
  • 8、利用构建好的Ubuntu镜像构建Nginx镜像
    利用DockerFile文件执行dockerbuild基于基础镜像自动构建nginx镜像做的时候可以找一台宿主机边执行命令,边写Dockerfile应用级镜像一定要有一个进程是前台执行,进程存在不至于程序启动就退出CMD:容器启动命令第一步:按照业务类型或系统类型等方式划分创建目录环境,方便后期镜像比较多......
  • 停止浪费金钱:通过双模式创新的创新衡量优化投资回报率
    不确定性和风险是创新投资的常态,这让企业领导者和创新团队面临着一个共同的挑战:如何衡量创新ROI?本文将探讨如何在高风险创新中实现回报,需要采用探索和开发的双模机制。在这个快速变化的市场中,企业创新为了实现可持续的ROI,在每个创新决策中,了解项目所在的领域,设定正确的期望和指......
  • nginx-clojure 源码构建一些问题
    因为nginx-clojure就是一个标准的nginx模块,一些是尝试基于源码进行构建发现一些问题的说明简单说明nginx当前1.25版本的构建是有问题的,1.24版本构建是可以的,1.23版本实际上官方已经提供了但是如果查看nginx官方文档会发现1.23版本的下载官方是似乎移除了,没直接提......
  • 移动端H5前端性能优化脚本执行优化
    移动端+HTML5,这个组合对前端工程师来说是个不小的挑战:如何让开发的页面能有更好的体验?这就是我们今天讨论的话题:移动端HTML5页面前端性能优化。如何优化HTML5在移动设置上的性能表现,首先需要明确以下几个原则:1、PC优化手段在Mobile端同样适用。2、在Mobile侧我们提出三秒种渲染完......
  • 云原生之使用Docker部署Laverna笔记工具
    (云原生之使用Docker部署Laverna笔记工具)一、Laverna介绍Laverna是一个开源的、用JavaScript编写的笔记网络应用程序,可以部署在个人服务器上使用。二、检查本地环境状态1.检查系统版本[root@server001~]#cat/etc/os-releaseNAME="CentOSLinux"VERSION="7(Core)"......
  • nginx-clojure 0.6.0 的一些新特性
    昨天制作了0.6.0的docker镜像,并说明了一些问题,以下简单说明下一些新特性新特性所有的handler可以在http以及servercontext使用了,可以方便进行组合使用nginx1.23.x支持jdk19支持,支持协程了官方提供的二进制构建基于1.23.3说明昨天也说明了,官方提供的二进制包缺......
  • 内网环境nginx配置https访问
    #!/bin/sh#createself-signedservercertificate:read-p"Enteryourdomain[www.example.com]:"DOMAINecho"Createserverkey..."opensslgenrsa-des3-out$DOMAIN.key2048echo"Createservercertificatesigningrequest.......
  • Python批量Excel文件数据导入SQLite数据库的优化方案
    说明:1)需要安装扩展库openpyxl;2)随着数据库的增大,导入速度可能会有所下降;3)本文只考虑Python代码优化,没有涉及数据库的优化;4)本文要点在于使用executemany实现批量数据导入,通过减少事务提交次数提高导入速度。fromrandomimportchoice,randrangefromstringimportdigits,ascii......