linux-nginx-配置详解

其他配置

nginx是主进程+工作进程/子进程模式

worker_processes 1; 工作进程数量 按cpu的总核心调整

worker_cpu_affinity 0010 0100 1000; CPU的亲和力

worker_connections 1024; 一个工作进程的并发数

访问控制只允许本机访问a目录其他机器拒绝访问**

location  /a {
	allow  127.0.0.1
	allow  192.168.10.42
	deny   all;
	
	return http://www.jd.com
}

目录用户验证:任何人都可以访问,但是需要凭用户密码才能访问

location   /b {
auth_basic  “验证码”
auth_basic_user_file   /etc/nginx/htpasswd;
}

设置日志格式

log_format  name  '[$time_local]  $remote_addr  "$request"  $status'

server {
	listen  80;
	server_name  localhost;
	charset  utf-8;
	access_log  logs/host.access.log  name;
	
	location…….
}

设置防盗链

#location  /c {
location  ~*  \.(png|gif|bmp)$ {
   valid_referers none blocked  *.ayitula.com;     --->解析:代表referers为none,或者是 *.ayitula.com则正常跳转,放着就返回403
   if ($invalid_referer){
   	return  403;
   }
}

反向代理

代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务器接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机

location  / {
   proxy_pass  http://118.190.209.153:4000;    --->解析:匹配到这里就会转发后端该地址作处理
   proxy_set_header  X-Real-IP   $remote_addr;
   proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
}

作限速

location  /abc  {
   limit_req zone=name  burst=5  nodelay;
   limit_conn  addr 1;   ---->每个ip地址只能有一个tcp连接;
   limit_rate  100k; ----->限制下载速度为100K;
}

URL模块语法,rewrite重定向URL

将http://www.ayitula 重写为 http://avitula.com/baism
locatin  / {
	set  $name  baism;
	rewite ^(.*)$http://ayitula.com/$name;
}

总结:
proxy_pass和rewrite的区别:
1.proxy_pass相对于用户来说是无感的,相当于代理,把请求装发到后端做处理
2.rewrite会跳转到其他地址,状态码3xx,是url重定向,把请求转发到其他u

长连接

http协议属于TCP协议

优化目标:减少三次握手和四次断开的次数

keepalive_timeout 5; 长连接时间

keepalive_requests 8192; 每个长连接接受最大请求数

压缩

gzip on;

启用gzip压缩的最小文件,小于设置值的文件将不会压缩

gzip_min_length 1k;

gzip压缩级别,1-9,数字越大压缩的越好,也越占用cpu时间,

gzip_comp_level 1;

进行压缩的文件类型

gzip_types test/plain application/javascript …….

是否在http header 中添加Vary:Accept-Encoding,建议开启

gzip_vary on;

客户端缓存

location ~* \.(png|gif)${
	expries  1h;
}

Nginx集群

1.集群中Nginx扮演的角色是:分发器

2.任务:接受请求、分发请求、响应请求

3.功能模块:

ngx_http_upstream_module 基于应用层分发模块

ngx_stream_core_module 基于传输层分发模块

4.nginx集群实际上是:虚拟主机+反向代理+upstream分发模块

虚拟主机:接受和响应请求

反向代理:待用户去数据服务器拿数据

​ upstream:告诉nginx去那个数据服服务器拿数据

5.upstream module(静态的话可以选1和2,动态选3)

  1. 轮询(默认)

    2)weight

    3)ip_hash

    4)fair(第三方)

    5)url_hash(第三方)

  2. 基于不同请求头的分发

    host、开发语言、浏览器、基于原ip

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ava0sR7n-1647430287037)(图片/image-20211012114331116.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VDpmKQ8t-1647430287038)(图片/image-20211012114337719.png)]

keepalvied高可用(在代理服务器上安装就可以了,后端服务器不是作为代理服务器,无需装)

keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,keepalvied将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后keepalvied自动将服务器加入到服务器群众,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

一个监控+自愈的软件s

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9LUosUVq-1647430287039)(图片/image-20211012114342534.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FkpYxc29-1647430287039)(图片/image-20211012114348602.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值