worker_processes 4;
events {
单个worker进程并发最大连接数;
nginx并发总链接数 = worker_processes * worker_connections,建议数量<=文件打开数
worker_connections 256;
}
http {
include为http模块调取的配置文件
mime.types文件是nginx可处理的静态媒体资源类型
include mime.types;
定义默认类型,普通文本为text/plain
default_type application/octet-stream;
是否能使用sendfile()传输文件,该属性可以大大提高Nginx处理静态资源的性能
sendfile on;
链接超时时间
keepalive_timeout 65;
server {
nginx服务监听端口,默认为80
listen 80;
指定网址域名信息,例:www.abc.com;默认为主机地址,通过输入主机地址访问页面
server_name localhost;
url为/时
location / {
指定网址站点目录
root html;
访问主页后,无对应站点时,反馈的信息,默认打开此配置文件
index index.html index.htm;
}
错误页面,优雅显示配置模块
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
### 常用项
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5399a44536304e82b8cbf52147683f68.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2de22824363d4527a6a18940f5a26609.png)
### 反向代理
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2751a3c0245048ae856dd46e4a671fd0.jpeg)
客户端发送请求到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,然后再返回到客户端。此过程客户端无法感知代理,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
location / {
echo "this is 100 / page";
}
location /a {
proxy_pass http://10.0.0.101:80/;
}
location /b {
proxy_pass http://10.0.0.102:80/;
}
proxy_pass为反向代理配置, 即流量由代理端转发至后端响应。注意结尾的/号,如果不配置会代表其他用法。
#### 匹配规则
=:优先级最高;
^~:优先级其次,匹配以xx开头;
~ ^/\w: 优先级第三,匹配字母、数字、下划线或汉字(正则表达式)
/:优先级最低;
server {
listen 80;
server_name localhost;
# 需要在server配置模块中添加配置, 否则默认会下载
default_type text/html;
location / {
echo "this is / page";
}
location = /a {
echo "this is = /a page";
}
location ^~ /a {
echo "this is ^~ /a page";
}
location ~ ^/\w {
echo "this is ~ ^/\w page";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
### 动静分离
nginx对静态页面的处理能力远高于tomcat,非常擅长将css、js、图片等资源以http协议的方式返回给客户端。故静态请求交由nginx,动态请求交由tomcat,提升系统吞吐量,,降低由单个服务器的压力。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/814a1cbcb9fb42de9e14211fd0828c37.png)
location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
静态数据放入客户端的缓存,七天内有效
root /webapps/projectname/code/static-resource;
expires 7d;
}
location / {
动态请求转交tomcat
proxy_pass http://127.0.0.1:8080;
}
### 负载均衡
http:
upstream group {
server 10.0.0.101:80;
server 10.0.0.102:80;
}
server:
location /lb {
proxy_pass http://group/;
}
#### 调度种类
轮询:每个请求按时间顺序逐一分配到不同的后端服务器;
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ddc67aae7aa94173addd993e73e7923f.png)权重:weight值越大,被访问的概率越高;
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4f86964b7a4e4b879a904d070af7e08b.png)
ip hash:每个请求按访问ip的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题;
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4049d5fd41e64e028d8b3bc6fa60f67c.png)
fair:按后端服务器的响应时间来分配请求,响应时间短的优先分配;
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cd72539bcfc5468f8442f68feaf9fc46.png)
url\_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效;
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3dff8d27f5f248a294ba17e4a9867139.png)
#### 几种状态
down:当前的后端server不参与负载;
weight:默认为1, 被访问的概率;
max\_fails:允许请求失败的次数,默认为1。当超过最大次数时,返回proxy\_next\_upstream模块定义的错误 ;
fail\_timeout:失败访问达到max\_fails次数后,暂挂的时间。;
backup: 所有非backup后端server处于宕机或者忙的时候,转发请求到backup后端server;
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/de24ce81ca3f447aaa1fc55884965c61.png)
## 附
nginx的主备: [link]( )
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/12db67de500c2762b333233be0bad6f5.png)
![img](https://img-blog.csdnimg.cn/img_convert/0a9d474236d2f162fd904cb01a1f932e.png)
![img](https://img-blog.csdnimg.cn/img_convert/53b0962a86d4457c43cbb2055cbe19fb.png)
![img](https://img-blog.csdnimg.cn/img_convert/01c00c65647dd563ab735a376090a388.png)
![img](https://img-blog.csdnimg.cn/img_convert/f4b5c2172c15b3e3216896b6cfbad908.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/2043c791c1b444944d8c5bcaf5ac2c33.jpeg)
入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
[外链图片转存中...(img-dNmrbXUw-1712852682049)]