> 文章列表 > 【Nginx笔记01】Nginx配置文件介绍、反向代理、负载均衡

【Nginx笔记01】Nginx配置文件介绍、反向代理、负载均衡

【Nginx笔记01】Nginx配置文件介绍、反向代理、负载均衡

这篇文章,主要介绍Nginx配置文件介绍、反向代理、负载均衡。

目录

一、nginx介绍

1.1、配置文件

1.2、反向代理

1.3、负载均衡


一、nginx介绍

1.1、配置文件

nginx配置文件是位于【conf】目录下的【nginx.conf】文件,这个文件中有三大部分组成,分别是:全局块、events块、http块。

全局块:定义一些全局变量,写在nginx.conf配置文件最开头部分。 例如:可以定义工作进程数量、日志文件路径、pid文件位置、用户组等。

events块:配置nginx选择哪种事件驱动模型来处理网络连接,例如:指定每一个工作进程最多可以处理多少个连接。

http块:这是最经常修改的配置部分,这个模块用于配置HTTP网络服务相关信息。 http块也有三部分组成,分别是:http全局配置、server服务配置模块、location路由配置模块。

http全局配置,用于设置网络连接的一些信息,例如:是否压缩传输、请求类型、连接超时时间、日志文件等等信息。 server服务配置模块:这个模块用于定义对外提供的服务,可以配置多个server块,一个server块就相当于是一个服务。

location路由模块:这个模块用于配置server服务模块中请求的路由,可以配置多个location块,指定哪些路由应该访问哪些静态资源,应该分发到哪个server服务等等信息。

1.2、反向代理

nginx反向代理,是指:客户端访问nginx服务,nginx根据规则将这个请求转发到指定的后端服务器上。

#user  nobody;
# worker_processes 表示nginx的worker工作进程数量
worker_processes  1;events {# worker_connections 表示一个worker工作进程里面,最大能够处理的连接数量,即:最大并发数量worker_connections  1024;
}http {# 引入文件类型和扩展名映射关系include       mime.types;# 设置默认的文件类型default_type  application/octet-stream;# 开启 sendfile 方式传输文件sendfile        on;# 设置连接超时时间keepalive_timeout  65;# 定义服务模块server {# 监听应用程序端口listen       6250;# 服务名称,一般是域名,可以多个,使用空格分隔server_name  localhost;# 配置路由,这里设置的是所有请求都将进入这个路由里面location / {# 配置静态资源的根目录,这里设置的就是nginx安装目录下的html目录root   html;# 配置访问的首页面,这里设置的就是访问html目录下的index.html和index.htm文件index  index.html index.htm;}# 所有/api开头的请求,都将进入这个路由里面,这里的【~】符号表示采用正则表达式# 注意:这里的【/api/】会被URL重写掉# 例如: 客户端发起的请求是: http://localhost:6250/api/nginx/query# 那么反向代理之后,转发的请求会变成: http://localhost:16250/nginx/query  注意没有了【/api/】location ~ /api/ {# 哪些IP不能够访问deny 127.0.0.1;# 允许哪些IP访问allow 10.105.129.147;# 设置反向代理的服务器地址,客户端/api的请求会被转发到 prox_pass 指定的服务器上面# 这里配置的代理地址中,不能包含URI片段,只能够含有:协议+IP+端口,最后的【/】都不能包含proxy_pass http://localhost:16250;# 设置转发请求中的请求头信息# proxy_set_header 请求头名称 值;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;}}
}

1.3、负载均衡

负载均衡是指将请求分发到不同的服务器上,减少一台服务器处理大量请求的情况。假设现在只有一台A服务器,此时有10000个请求到来,那么nginx只能够将这10000个请求全部分发给A服务器。如果A服务器只能处理5000个请求,那么就会导致大量请求积压,从而有可能导致A服务器宕机。为了解决A服务器的压力,可以在增加几台服务器,B服务器和C服务器。nginx安装某种分发规则,将这10000个请求分发到A、B、C三台服务器上面,这样每一台服务器,就可以只处理少部分的请求。这个思想就是负载均衡的思想,将压力分担到不同的服务器上面。

#user  nobody;
# worker_processes 表示nginx的worker工作进程数量
worker_processes  1;events {# worker_connections 表示一个worker工作进程里面,最大能够处理的连接数量,即:最大并发数量worker_connections  1024;
}http {# 引入文件类型和扩展名映射关系include       mime.types;# 设置默认的文件类型default_type  application/octet-stream;# 开启 sendfile 方式传输文件sendfile        on;# 设置连接超时时间keepalive_timeout  65;# 负载均衡配置upstream sp-nginx-demo {# 定义后端服务器的【IP地址+端口】,注意不能加http或者https协议之类的server 127.0.0.1:16250;server 127.0.0.1:16251;server 127.0.0.1:16252;}# 定义服务模块server {# 监听应用程序端口listen       6251;# 服务名称,一般是域名,可以多个,使用空格分隔server_name  localhost;# 配置路由,这里设置的是所有请求都将进入这个路由里面location / {# 配置静态资源的根目录,这里设置的就是nginx安装目录下的html目录root   html;# 配置访问的首页面,这里设置的就是访问html目录下的index.html和index.htm文件index  index.html index.htm;}# 所有/api开头的请求,都将进入这个路由里面,这里的【~】符号表示采用正则表达式# 注意:这里的【/api/】会被URL重写掉# 例如: 客户端发起的请求是: http://localhost:6250/api/nginx/query# 那么反向代理之后,转发的请求会变成: http://localhost:16250/nginx/query  注意没有了【/api/】location ~ /api/ {# 哪些IP不能够访问# deny 127.0.0.1;# 允许哪些IP访问allow 10.105.129.147;# 设置反向代理的服务器地址,客户端/api的请求会被转发到 prox_pass 指定的服务器上面# 注意: 负载均衡模式下,不会重写URI,只是将对应的【IP+PORT】替换成后端服务器地址# 举个例子: 客户端发起的请求是: http://127.0.0.1:6251/api/nginx/query# 负载均衡之后,变成的地址是: http://127.0.0.1:16252/api/nginx/query # 这里配置的代理地址中,是负载均衡的upstream模块名称: sp-nginx-demoproxy_pass http://sp-nginx-demo;# 设置转发请求中的请求头信息# proxy_set_header 请求头名称 值;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;}}
}

到此,这篇文章结束了,主要介绍Nginx配置文件介绍、反向代理、负载均衡。

高新技术资讯网