(静态资源处理)nginx 比tomcat强在哪
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上
對于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
其中root為tomcat的絕對路徑(可以隨便配置),我事先對tomcat的首頁的index.jsp跑起來存成index.html文件。
那么現在我們已經完成兩件事:8081端口負載均衡(反向代理到我服務器),8082端口制成本地tomcat的靜態文件服務器。
那么開啟tomcat。左面是nginx做服務器返回靜態
nginx vs tomcat壓測對比
并發結果對比
在添加->監聽器添加自己喜歡數據格式(需要qps的可以找插件)
其中tomcat,最大qps2400左右
而nginx的結果明顯要強,最大qps3000左右
對服務器影響對比
- 當20000個并發10s內請求時候。附上完成時的cpu狀況 tomcat cpu達到21.6%。內存站到6.4%,也就是隨著并發tomcat對服務器的cpu和內存造成不小壓力
而nginx在壓測過程中內存幾乎沒變化,幾乎不吃內存。而cpu占用也比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强在哪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧拉函数/欧拉函数打表 lightoj1
- 下一篇: java学习曲线建议