学习网址: https://www.bilibili.com/video/BV1zJ411w7SV?p=1
1、什么是nginx?
Nginx是一个高性能的HTTP和反向代理web服务器,特点是:占有内存少,并发能力强。事实是nginx的并发能力确实在同类型的网页服务器中表现较好。
Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达 50000 个并发连接数。
2、反向代理
(1)正向代理
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问
(2)反向代理
我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端。此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
server {
listen 9001;
server_name 192.168.0.142;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8081;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8082;
}
}
location指令说明
1、= : 用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求
2、~ : 用于标识 uri 包含 正则表达式,并且区分大小写
3、 ~* : 用于标识uri包含正则表达式,并且不区分大小写
4、 ^~ : 用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识uri和请求字符串匹配度最高的 location 后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配
注意:如果uri包含正则表达式,则必须要有 ~ 或者 ~ 标识* .
3、负载均衡
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上。将原先请求集中到单个服务器上的情况改为请求分发到多个服务器上。将负载分发到不同的服务器,也就是我们所说的负载均衡。
在http块配置需要负载均衡的服务 #myserver 是取的服务名
upstream myserver {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
再加上
server {
listen 8080;
server_name 192.168.27.1;
#charset utf-8;
#access_log logs/host.access.log main;
location / {
proxy_pass http://myserver;
#proxy_pass http://127.0.0.1:8080/isys/test/getTest;
#index index.html index.htm;
}
server_name:本机ip,proxy_pass http://myserver;
nginx分配服务器策略
第一种 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
第二种 weight
weight 代表权重默认为1,权重越高被分配的客户端越多
upstream myserver{
server 127.0.0.1:8081 weight=3;
server 127.0.0.1:8082;
}
第三种 ip_hash
每个请求按访问的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream myserver{
ip_hash;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
第四种 fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4、动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。
server {
listen 80;
server_name 192.168.27.1;
#charset utf-8;
#access_log logs/host.access.log main;
location /html/ {
root C:\Users\gy2020\Desktop/;
index index.html index.html;
}
location /image {
root C:\Users\gy2020\Desktop/;
autoindex on;
}
}
autoindex on; 列出当前文件夹的内容
5、Nginx安装下载基本使用方法
1.下载nginx http://nginx.org/en/download.html
查看nginx版本号 nginx -v
2.启动nginx
(1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过
(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe 或者 start nginx ,回车即可
3.检查nginx是否启动成功
(1)浏览器输入网址 http://localhost:80
(2)cmd命令窗口输入 tasklist /fi “imagename eq nginx.exe”
(3) nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占 用可以修改为未被占用的端口即可 (80端口在server内)
(4)检查80端口是否被占用: netstat -ano | findstr “80” 或 netstat -ano | findstr 0.0.0.0:80
(5)修改nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行命令
nginx -s reload 即可让改动生效 (执行命令需要去nginx目录下执行)
4.关闭nginx
(1) 输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)
(2) 使用taskkill taskkill /f /t /im nginx.exe
5.使用nginx代理服务器做负载均衡
(1)修改nginx的配置文件nginx.conf 达到访问nginx代理服务器时跳转到指定服务器的目的,即通过 proxy_pass 配置请求转发地址,即当我们依然输入http://localhost:80 时,请求会跳转到我们配置的服务器
6.nginx配置静态资源
6、Nginx配置文件
1.nginx配置文件位置
nginx 目录下 conf 目录下 nginx.conf 文件
2.nginx配置文件组成
(1)nginx配置文件由三部分组成
第一部分 全局块
从配置文件开始到 events 块之间的内容,主要会设置一些映像 nginx 服务器整体运行的配置指令
比如 worker_processes 1; worker_processes 值越大,可以支持的并发处理量也越多
第二部分 events 块
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接
比如 worker_connections 1024; 支持的最大连接数
第三部分 http 块
Nginx 服务器配置中最频繁的部分
http 块也可以包括 http 全局块、server 块
1245

被折叠的 条评论
为什么被折叠?



