Nginx技术进阶详讲

简介: Nginx技术进阶详讲 并发数问题 讲到并发数这个概念,想必各位应该都知道是什么意思,就是同时访问一个项目,就比我们现在做的一些项目完工以后要放到公网环境下的时候,所有人都能用,比如,你上百度,同时别人也在上,所以有多少人同时在,又同时去处理,这就是所谓的并发数; tomcat的并发数大概在300.

Nginx技术进阶详讲

并发数问题

讲到并发数这个概念,想必各位应该都知道是什么意思,就是同时访问一个项目,就比我们现在做的一些项目完工以后要放到公网环境下的时候,所有人都能用,比如,你上百度,同时别人也在上,所以有多少人同时在,又同时去处理,这就是所谓的并发数;

tomcat的并发数大概在300左右,如果再多的话,它的访问速度就会变的很慢,这里值得提一下,虽然只有300,但是并发数还是比较多的,什么概念呢?就死在一秒之内,甚至不到一秒,同时访问这个系统的并发量300左右,当然它也受限于网络带宽的问题;

带宽越大,我在你这个网页上下载的速度也就越快,如果我的带宽只有一兆的话,那么我的下载速度也就几十KB,所以这些并发数,还受限于这写影响;

Nginx解决并发数问题

刚才我也说了,Tomcat的并发量大概也就300,同时连进来的人数若要超过这300,那么速度就会变得非常慢,会出现丢包的情况,至于什么是丢包我在这里就不详说了,各位可以自行百度;

怎么解决这个问题呢?

那么就用Nginx(静态资源服务武器)来解决这个问题;

nginx是一个很强大的高性能的wbe和反向代理服务器,它狙狗非常优越的特性:

在连接高并发的情况下,Nginx是Apache服务器不错的替代品,而它的并发量在50000左右,简直无法跟tomcat相比,就不是一个数量级的;

但是有一个疑问就是,那直接学或直接用Nginx不就完了吗,干嘛还要学Tomcat、JBOSS....

Nginx是一个HTTP和反向代理服务器,Tomcat是应用服务器,能够运行java程序、执行jsp、serviet;

Nginx不行,它是来处理静态资源的,你往上面放一个静态的图片、视频、音频以及一个HTML,它能帮你处理,你往上面放一个java源代码,它就不能帮你处理了;

所以,Nginx跟Tomcat这些应用服务器没有任何冲突,Nginx的应用面,跟Tomcat简直就是两个应用面,他们之间没有任何冲突;

使用Nginx访问静态资源

Ngxin下载网盘地址【windows】(腾讯微云):

链接:https://share.weiyun.com/5VfMTOP 密码:mf39a6

下载安装好后打开,我们需要配置一些属性来做负载均衡

1.启动Nginx

解压到指定文件夹后,我们双击Nginx:

进去之后双击nginx.exe,运行即可【可以在系统资源管理器】中查看Nginx运行状态;

2.配置Nginx

在conf文件中,双击nginx.conf使用记事本或者其他文本工具打开:

接下来我们开始对它的配置文件进行一系列的解读;

3.Nginx.conf配置文件解读

点进去后,首先我声明一点,我不是做运维的,我是干开发的,所以我只会说一些对于我们开发而言比较重要的一些配置;

第一部分:

复制代码
http {
    include       mime.types;
    default_type  application/octet-stream;

    #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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8888;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
复制代码

首先,http是处理http协议的,setver算是一个节点,这代表其中一个服务,服务监听端口是8888端口,当你执行8888端口的时候,他就会自动帮你映射到你Nginx所在的根目录;

这个根目录是在咱们的电脑上的Nginx安装目录:

在配置文件中可以清晰的看到,它映射到这个nginx根目录中的html文件夹:

而这里面的资源,你都可以通过8888来访问了;

 比如我现在想访问我这里的一张图片,很简单,打开浏览器,直接输入端口8888,加上你的文件地址全目录即可【前提是你先启动Nginx】

地址栏输入:

这样就完成了静态资源的访问;

 反向代理(动静分离)

反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

通俗点理解就是,当你访问一个页面,那个页面上肯定有一些什么图片啊音频视频,当我们访问这个网页的时候,相当于你发了两次请求,比如百度,你访问百度一次,又向它的内外服务器发了一次请求,而它的内网服务器就是nginx,它从内网服务器拿出你访问的一些图片,音频,从而可以看出,静态资源与动态资源是放在一个不同的服务器上;

我访问百度,百度一看我要访问的是图片就是一些静态资源,那么,它就是把你的这次请求转发给静态资源服务器,获取图片后,响应给你;

所以,作为用户,你不知道你到底访问的是哪一台服务器;

通过反向代理机制可以做负载均衡;

负载均衡

先通过一张图大概了解一下:

我们需要在配置文件中配置一下,首先,还是在刚刚我在上面写的那个文件,用记事本打开,接下来,我将介绍第二个比较重要的配置:

复制代码
#配置应用服务器的ip端口
http {
upstream myproject {
 server 127.0.0.1:8081;
 server 127.0.0.1:8082;
 }

 server {
 listen 6565;
 server_name www.domain.com;
 location / {
 proxy_pass http://myproject;
 }
 }
}
复制代码

首先,这段代码在配置文件中不内置,需要自己手动添加进去,我大概介绍一下;

upstream是关键字来标识自己是一个配置反向代理的字段,不可以更改,后面的myspringboot可以随便更改;

后面的就是配置你的应用服务器集群,用来帮你代理的;

配置完成后重启才能生效;

直接在任务管理器接触Nginx进程,再开即可~

而下面的server就代表,通过6565来访问以上两个应用服务器季集群,从而达到,负载均衡;

作者 : Stanley 罗昊

原文地址https://www.cnblogs.com/StanleyBlogs/p/10545887.html

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
缓存 前端开发 JavaScript
tomcat核心技术+Nginx性能调优技术
而Tomcat的基本配置,每个配置项也基本上对应了Tomcat的组件结构,如果要用一张图来形象展现一下Tomcat组成的话
37 1
|
3月前
|
缓存 负载均衡 应用服务中间件
高性能网络编程技术 Nginx 的概念与实践
Nginx 是一款高性能、轻量级的Web服务器和反向代理服务器,它在网络编程技术领域中被广泛应用。本文将详细介绍Nginx的概念和实践,包括其核心原理、功能特点、优势和应用场景等方面。同时,还将深入探讨如何使用Nginx进行高性能网络编程,结合实际案例进行分析。
|
应用服务中间件 Linux nginx
CentOS下Nginx环境的搭建及进阶配置(安装篇)
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。 本文主要讲解如何在CentOS搭建及配置Nginx
265 0
CentOS下Nginx环境的搭建及进阶配置(安装篇)
|
3月前
|
缓存 负载均衡 应用服务中间件
高性能网络编程技术 Nginx 的概念与实践
在当今互联网时代,高性能网络编程技术越来越受到重视。Nginx 作为一款高性能、高可靠性的 Web 服务器,拥有广泛的应用和优异的性能表现。本文将介绍 Nginx 的基本概念、架构以及实践技巧,帮助读者更好地理解和使用这一工具。
|
4月前
|
Java 应用服务中间件 数据库连接
太厉害!Redis+Nginx+设计模式+Spring全家桶+Dubbo技术精选合集
最近花了很长的时间去搜罗Java核心技术好文,我把每个Java核心技术的优选文章都整理成了一个又一个的文档。昨天也是终于全部整理好了,今天就把这些东西分享给老铁们,也能为老铁们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。不多bb了,直接上干货!
|
8月前
|
Java 应用服务中间件 数据库连接
太厉害!Redis+Nginx+设计模式+Spring全家桶+Dubbo技术精选合集
最近花了很长的时间去搜罗Java核心技术好文,我把每个Java核心技术的优选文章都整理成了一个又一个的文档。昨天也是终于全部整理好了,今天就把这些东西分享给老铁们,也能为老铁们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。不多bb了,直接上干货!
|
8月前
|
tengine 安全 应用服务中间件
源码安装----Tengine(nginx的进阶版)
源码安装----Tengine(nginx的进阶版)
258 1
|
应用服务中间件 nginx Perl
深入浅出学习透析Nginx服务器的基本原理和配置指南「进阶实践篇」
深入浅出学习透析Nginx服务器的基本原理和配置指南「进阶实践篇」
196 0
BATMJ技术实战之多线程+JVM+Nginx+Redis+SpringBoot(书籍赠送)
感谢各位的关注!!!!请看下面这就是小编免费赠送给大家和粉丝的福利哦 Java多线程编程核心实战(文档) 深入理解Java虚拟机:JVM实战(文档) 深入浅出Nginx实战(文档) Redis核心实战(文档) 深入浅出SpringBoot以及SpringBoot2.x(文档) 由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
|
缓存 算法 网络协议
NGINX进阶配置
NGINX进阶配置
66 0
NGINX进阶配置