Loading

Nginx 学习

一、Nginx快速理解

当项目部署到服务器上,用户量不多时,在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。

低并发

但慢慢的,用户增多了,并发量也慢慢增大了。这时候一台服务器已经很难满足需求了。

高并发

于是我们横向扩展,又增加了服务器。这时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器(Nginx)了。通过代理服务器帮我们转发和处理请求。

Nginx

二、什么是Nginx

Nginx是一款轻量级、高性能的Web服务器、反向代理服务器。

特点:占有内存少,并发能力强。事实上Nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用Nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

官方数据测试表明能够支持高达 50,000 个并发连接数的响应

2.1 反向代理和正向代理

反向代理:是指代理服务器来接收Internet上的客户端请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端。此时代理服务器对外就表现为一个反向代理服务器。

正向代理:是一个位于客户端和原始服务器之间的服务器,为了从原始服务器获得内容。客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转发并获得的内容返回给客户端。

2.2 反向代理和正向代理的区别

正向代理,是在客户端的。比如VPN,VPN是在我们的用户浏览器端设置的,并不是在远程服务器上的。

正向代理

反向代理,是作用在服务器端的,是一个虚拟ip。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。

反向代理

三、Nginx的主要功能

3.1 请求转发

Nginx类似于“接线员”

请求转发

3.2 负载均衡

负载均衡

3.3 动静分离

我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet 容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存即可。(动静分离充分利用各自的优势完成高性能访问)

动态资源:如JSP由Tomcat或其它WEB服务器处理。
静态资源:如图片、css、js等由nginx服务器完成。

动静分离

四、Nginx的安装和启动

官网:http://nginx.org/

4.1 Windows版本

image-20220209190600613

下载完成后解压至 无中文路径

image-20220209191016718

常用的配置文件是 ./conf/nginx.conf。查看默认监听端口。

image-20220209191348685

image-20220209191602035

启动Nginx:可以双击安装目录下的 nginx.exe,第一次启动时不建议这么做,因为启动窗口会一闪而过,看不到报错信息。可以使用 cmd 来启动。

image-20220209192141290

image-20220209192149491

image-20220209192316628

启动后,关闭DOS窗口并不会关闭Nginx,在后台运行着。(可以使用任务管理器查看、关闭)

4.2 Linux版本

下载 Linux 版本安装包。

image-20220209195230872

上传至服务器(虚拟机)中,解压、配置和安装。

tar -zxvf nginx-1.20.2.tar.gz	# 解压

./configure	# 配置,检查环境依赖是否满足
make	# 编译
make install	# 安装

whereis nginx	# 查询nginx的位置
cd /usr/local/nginx/	# cd到 nginx 文件夹

cd sbin/	# sbin文件夹存放nginx的启动程序
./nginx	# 启动nginx

image-20220209202530024

查看 nginx 的默认端口号

cd ../
cd conf/

cat nginx.conf	# 查看nginx.conf文件

image-20220209203011593

然后在浏览器中访问 虚拟机IP + 默认端口

image-20220209210627114

若访问失败的话,很可能是虚拟机防火墙没关。要开放默认端口使外部能够访问。

【centos7虚拟机开启端口后 外部不能访问的问题】:https://blog.csdn.net/Honnyee/article/details/81535464

五、Nginx常用命令

cd /usr/local/nginx/sbin/
./nginx	# 启动
./nginx -s stop	# 停止
./nginx -s quit	# 安全退出
./nginx -s reload	# 重新加载配置文件
ps aux|grep nginx	# 查看nginx进程

六、Nginx实际操作

6.1 Nginx配置文件结构

...              #全局配置

events {         #events配置
   ...
}

http {     #http配置
	
    upstream edustudy {	# 负载均衡配置,默认是轮询
        server 127.0.0.1:8080 weight=1;	# weight是权重
        server 127.0.0.1:8081 weight=1;
    }
    server {        #server代理
        listen       9001;
        server_name  localhost;	# 通过请求头中的HOST字段,匹配到特定的server块
        
        location / {  # 9001端口下的所有请求都会被匹配到这里
			proxy_pass http://edustudy;	# 转发至负载均衡里
        }
        
        # www.edustudy.com/admin
        location /admin {
            proxy_pass 
        }
        
        # 当地址中包含"eduService"时,请求会转发至 http://localhost:8085
        location ~ /eduService/ { 
            proxy_pass http://localhost:8085;
        }

    }
    
    server {
      	listen       9002;
        server_name  localhost;
    }
}

参考资源:

posted @ 2022-02-09 22:31  KledKled  阅读(38)  评论(0编辑  收藏  举报