nginx有多牛逼

  • 序言
  • 安装
  • 反向代理
  • 静态资源服务器
  • nginx vs tomcat压测对比
    • 并发结果对比
    • 对服务器影响对比
  • 说在后面的话

序言

对于常用的服务器,大家可能更多的知道apache,tomcat,lls等服务器。我们跟多的了解到nginx常常用于反向代理。而实质是nginx也是一个高性能服务器。常用于前端页面资源静态化和负载均衡的反向代理。

下面就由博主带你认识nginx。以及nginx的反向代理、资源静态化,和压测对比。

安装

笔者环境是ubuntu18.04.所以下载东西是非常简单。centos 的yum源也有nginx。对于window。直接下载使用即可。

  • nginx 下载:sudo apt get nginx
  • jmeter 下载 官网自行安装 解压完(sudo chomd -R 777 apache-jmeter-5.1.1)

这样,一些基本的工具就下载完成啦。直接nginx或者sudo nginx访问localhost就有hello nginx 就是安装成功,对于jmeter 如果安装可以到官网进行安装。

对于nginx安装后的一些路径,都在

  • 所有的配置文件都在/etc/nginx下
  • 程序文件在/usr/sbin/nginx
  • 日志放在了/var/log/nginx中
  • 并已经在/etc/init.d/下创建了启动脚本nginx

还有nginx的一些常用关闭命令

  • nginx -s reload :修改配置后重新加载生效
  • nginx -s reopen :重新打开日志文件
  • 关闭nginx:
    nginx -s stop :快速停止nginx
    quit :完整有序的停止nginx
  • 其他的停止nginx 方式:
    ps -ef | grep nginx
    kill -9 xxx

如果权限不足记得加上sudo

反向代理


对于nginx,很多人用nginx tomcat做负载均衡。提高系统并发量。
对于nginx的配置文件,在/etc/nginx/conf.d/下新建proxy.conf(也可以在nginx/nginx.conf中配置)
就比如我想用我本地8081端口代理到本地的nginx上

 upstream tomcat-server{server 47.100.58.250:8080 ;}server{listen 8081; server_name localhost; location / {proxy_pass http://tomcat-server;root html;index index.html;}
}

对于nginx/nginx.conf我进行了修改去掉一些暂时用不到的。

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;client_max_body_size 20m;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/nginx/mime.types;default_type application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;
}

这样,你在本地就可以代理访问服务器地址http://localhost:8081/
当然,如果有多个server可以在upstream中进行配置,还可配置各个节点的权重等等。具体就不介绍了。

静态资源服务器

在前后端分离流行的当今。nginx被许多前端爱好者接受。通过nginx能够简单的将静态资源部署,从而达到动静分离的效果。

nginx配置静态资源服务器很简单
在上述同级文件conf.d/下新建static.conf

server {listen 8082;server_name localhost;location / {root /home/tomcat9/webapps/ROOT/;autoindex on;}}

其中root为tomcat的绝对路径(可以随便配置),我事先对tomcat的首页的index.jsp跑起来存成index.html文件。

那么现在我们已经完成两件事8081端口负载均衡(反向代理到我服务器)8082端口制成本地tomcat的静态文件服务器

那么开启tomcat。左面是nginx做服务器返回静态

nginx vs tomcat压测对比

并发结果对比

  1. 我们先前下载的jmeter可以上场了。针对同一个静态页面。nginx路径为http://localhost:8082/,tomcat为http://localhost:8080/.
  2. 添加线程组。先测试15000个线程1s内同时请求主页。线程组中添加http请求。ip:localhost。port:8080
    在添加->监听器添加自己喜欢数据格式(需要qps的可以找插件)
  3. 对比
    其中tomcat,最大qps2400左右

    而nginx的结果明显要强,最大qps3000左右

对服务器影响对比

  • 当20000个并发10s内请求时候。附上完成时的cpu状况 tomcat cpu达到21.6%。内存站到6.4%,也就是随着并发tomcat对服务器的cpu和内存造成不小压力

    而nginx在压测过程中内存几乎没变化,几乎不吃内存。而cpu占用也比tomcat少。

总结:

指标 nginx tomcat
响应中位数 0ms 1ms
前95%响应时间 4 5
前99%响应时间 7 16
qps(观察) 3000 2400
对内存影响 0% 6.4%
对cpu影响 21.6% 14%
其他 轻便强大 java吃点内存、速度慢点

(测量环境相对统一)

说在后面的话

通过系列对比,发现nginx的强大之处。负载均衡和静态资源服务器能够为并发减轻压力。而nginx的学问依然很多。还需要细细研究才行。并且nginx的牛B之处远不止这些,还需要深入学习才行!

同时,替自己公众号打啵广告。希望一起交流哈

  • 如果对后端、爬虫、数据结构算法等感性趣欢迎关注我的个人公众号交流:bigsai

(静态资源处理)nginx 比tomcat强在哪相关推荐

  1. Nginx静态资源站点——Nginx虚拟主机

    功能一:搭建一个静态资源网站 1.准备好目录资源 [root@web01 ~]# mkdir /website [root@web01 ~]# cd /website [root@web01 webs ...

  2. nginx映射静态资源linux,nginx静态资源映射

    方法一(使用root) #静态资源路径映射 location /static{ root /data/w3; } root后面跟随的路径需要是绝对路径 ,而且(依据上面的配置)在 /data/ 下面必 ...

  3. Nginx静态资源站点——Nginx location作用

    Nginx的locaiton作用是根据用户请求的URI不同,来执行不同的应用. 针对用户请求的网站URL进行匹配,匹配成功后进行对应的操作. nginx.conf中server{}指令块的locati ...

  4. Nginx静态资源站点——Nginx地址重写

    Nginx rewrite技术主要是实现URL地址重写,且支持正则表达式的规则 rewrite能够实现URL的跳转,需要nginx在编译安装的时候,装好了PCRE这个软件. 通过rewrite可以规范 ...

  5. Nginx安装,Nginx静态缓存,Nginx Gzip压缩,Nginx负载均衡,Nginx方向代理,Nginx+Tomcat+Redis做session共享

    Nginx安装 nginx-1.10.1.tar.gz安装,参考http://blog.csdn.net/tototuzuoquan/article/details/47381907. 修改nginx ...

  6. Nginx安装,Nginx静态缓存,Nginx Gzip压缩,Nginx负载均衡,Nginx方向代理,Nginx+Tomcat+Redis做session共享...

    Nginx安装 nginx-1.10.1.tar.gz安装,参考http://blog.csdn.net/tototuzuoquan/article/details/47381907. 修改nginx ...

  7. 【网络编程】利用Nginx实现动静分离--分离动态请求和静态请求(Nginx+Tomcat)

    文章目录 一.什么是动静分离 1.1 动静分离原理 1.2 Nginx实现动静分离的优势 二.动静分离的实现 2.1 先了解一下location语法 2.1.1 nginx模块 2.1.2 Nginx ...

  8. nginx搭建本地服务器 正向代理 反向代理 动态资源 静态资源

    前言 在互联网架构中服务器分为Web服务器和应用服务器. Web服务器:一般指像nginx.apache这类的服务器,web服务器一般只能解析静态资源: 应用服务器:一般指像tomcat.jetty. ...

  9. Nginx静态资源部署

    目录 Nginx静态资源概述 Nginx静态资源的配置指令 listen指令 server_name指令 location指令 设置请求资源的目录root / alias index指令 error_ ...

最新文章

  1. CSS——float属性备忘笔记
  2. java中产生指定范围内的随机数
  3. 因遭领导批评,90后女生上班当天便辞职还删了公司后台数据,结果……她被判刑了...
  4. 量子算法、DNA计算与后经典计算时代
  5. java中http解析url,java url 编码(解析http请求汉语言地址 )
  6. 土人系列AS入门教程--实战篇
  7. 多用户文件系统java实现_为什么要有文件系统?文件系统都有那些种类?
  8. Extjs TreeNode的图标元素。 (节点图标, expand的加减号)
  9. 安全研究员发现 Yandex 浏览器中的 SSRF 缺陷
  10. Ubuntu 16.04中的Dock的应用顺序调整
  11. varnish02 代理多台后端服务器
  12. 作为一名运维工程师我们需要哪些技术
  13. 2022-2028年中国无线模组行业投资策略探讨及市场规模预测报告
  14. 对.gpx文件进行地图坐标系转换
  15. C# 使用NPOI导出Excel,首行冻结,添加筛选,填充颜色,列宽自适应
  16. 【小程序】报getUserProfile:fail can only be invoked by user TAP gesture.
  17. 找出直系亲属 牛客网
  18. 健康管理项目第九天(套餐预约之占比饼形图、运营数据统计、报表导出 )
  19. 前端案例:蓝色CSS3二级导航菜单
  20. 网络技术| 说说计算机网络及IP地址 -- 网络基础 跳线制作 IP地址配置

热门文章

  1. (chap3 数据链路)MAC地址
  2. C++ Primer 5th笔记(6)chapter6 函数: 参数
  3. node + express + mongodb 手动配置
  4. python—时间复杂度
  5. [reference]-armv8汇编学习-书籍推荐
  6. wxWidgets利用透明图片自定义工具条
  7. 实现远程调用_微服务的那些事(三),微服务的远程调用方式。RPC和HTTP
  8. 静态反调试技术(1)
  9. 系统调用003 系统服务表
  10. WeTool逆向:借用别人的成果 打造自己的程序