网站首页 > 技术教程 正文
序言
对于常用的服务器,大家可能更多的知道apache,tomcat(java应用服务器),lls等服务器。我们跟多的了解到nginx常常用于反向代理。而实质是nginx也是一个高性能web服务器。常用于前端页面资源静态化和负载均衡的反向代理。
下面就由博主带你认识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压测对比
并发结果对比
- 我们先前下载的jmeter可以上场了。针对同一个静态页面。nginx路径为http://localhost:8082/,tomcat为http://localhost:8080/.
- 添加线程组。先测试15000个线程1s内同时请求主页。线程组中添加http请求。ip:localhost。port:8080
- 在添加->监听器添加自己喜欢数据格式(需要qps的可以找插件)
- 对比
- 其中tomcat,最大qps2400左右
- 而nginx的结果明显要强,最大qps3000左右
对服务器(物理机)影响对比
- 当20000个并发10s内请求时候。附上完成时的cpu状况 tomcat cpu达到21.6%。内存站到6.4%,也就是随着并发tomcat对服务器的cpu和内存造成不小压力
- 而nginx在压测过程中内存几乎没变化,几乎不吃内存。而cpu占用也比tomcat少。
总结:
(测量环境相对统一)
说在后面的话
通过系列对比,发现nginx的强大之处。负载均衡和静态资源服务器能够为并发减轻压力。而nginx的学问依然很多。还需要细细研究才行。并且nginx的牛B之处远不止这些,还需要深入学习才行!
同时,替自己公众号打啵广告,欢迎关注,你的关注就是我码字的动力!
欢迎关注我的个人公众号:bigsai
头条号:一直码农一直爽
猜你喜欢
- 2024-10-10 doker容器实战分别实现nginx、tomcat、mysql
- 2024-10-10 阿里P8终于总结出:SpringBoot+Tomcat+Nginx+Netty面试题及答案
- 2024-10-10 Nginx 和 tomcat开启Gzip功能的方法
- 2024-10-10 nginx 反向代理tomcat(nginx 反向代理配置)
- 2024-10-10 nginx反向代理tomcat集群(nginx反向代理实例)
- 2024-10-10 Nginx负载均衡+Tomcat架构还不透彻?Java架构师必读书籍送给你
- 2024-10-10 服务器环境中Tomcat、Nginx和Apache有什么特点呢?
- 2024-10-10 百度T7分享:Nginx+Tomcat实现负载均衡 动静分离集群 让你年薪30w
- 2024-10-10 Nginx+Tomcat 动静分离实现负载均衡
- 2024-10-10 注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)