这篇文章,主要介绍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;
}
}
}
- 注意:如果proxy_pass配置的地址最后带有【/】斜杠,那么location后面的路径匹配格式要写成【^~/xxx/】才不会报错。
# 这里使用了【^】
location ^~/api/ {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
# 这里最后使用了一个【/】,使用了【/】结尾,那么location后面就要使用【^】,不然启动报错
proxy_pass http://127.0.0.1:30000/;
}
1.3、负载均衡
负载均衡是指将请求分发到不同的服务器上,减少一台服务器处理大量请求的情况。假设现在只有一台A服务器,此时有10000个请求到来,那么nginx只能够将这10000个请求全部分发给A服务器。如果A服务器只能处理5000个请求,那么就会导致大量请求积压,从而有可能导致A服务器宕机。为了解决A服务器的压力,可以在增加几台服务器,B服务器和C服务器。nginx安装某种分发规则,将这10000个请求分发到A、B、C三台服务器上面,这样每一台服务器,就可以只处理少部分的请求。这个思想就是负载均衡的思想,将压力分担到不同的服务器上面。文章来源:https://www.toymoban.com/news/detail-422898.html
#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-demo
proxy_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配置文件介绍、反向代理、负载均衡。文章来源地址https://www.toymoban.com/news/detail-422898.html
到了这里,关于【Nginx笔记01】Nginx配置文件介绍、反向代理、负载均衡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!