Nginx -- 基础

本文介绍了Nginx的基础配置,包括最小配置、虚拟主机、反向代理、负载均衡、动静分离和URL重写。还讨论了高可用配置与HTTPS证书配置,帮助读者深入理解Nginx的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录结构

  • conf :存放配置文件相关
  • html :存放静态文件默认目录html、css等
  • sbin :nginx的主程序

基本配置

最小配置
  • worker_processes 1;默认开启一个业务进程
  • worker_connections 1024;单个业务进程可以接收的链接数
  • include mime.types;引入http mime类型
  • deflut_type application/octet-stream;mime类型没匹配上会默认使用二进制流方式传输
  • sendfile on;开启linux的0拷贝
  • keepalive_timeout 65;超时时间
虚拟主机配置
server {
	listen 80; 监听端口号
	server_name localhost; 主机名
	location / { 匹配路径
		root html; 文件根目录
		index index.html index.htm; 默认页名称
	}
	error_page 500 502 503 504 /50x.html; 报错编码对应页面
	location = /50x.html {
		root html;
	}
}
  • 虚拟主机:原本一台服务器只能对应一个站点,通过虚拟主机技术可以虚拟化成多个站点同时对外提供服务
  • server_name:servername匹配分先后顺序,写前面的匹配上就不会继续匹配
    • 完整匹配:同一个servername中可以匹配多个域名 ,server_name a.xxx.com b.xxx.com;
    • 通配符开始匹配:server_name *.xxx.com
    • 通配符结束匹配:server_name a.xxx.*
    • 正则匹配:server_name ~^ [0-9]+.xxx.com$
反向代理配置
  • proxy_pass
	location / {
		proxy_pass http://atguigu.com/;
	}
负载均衡配置
  • upstream
upstream proxyPass { //反向代理的路径
	server 127.0.0.1:8050 weight=10 down;
	server 127.0.0.1:8060 weight=1;
	server 127.0.0.1:8060 weight=1 backup;
}
server {
	listen 80; 监听端口号
	server_name localhost; 主机名
	location / { 匹配路径
		proxy_pass proxyPass; //配置反向代理upstream路径
		root html;
		index index.html index.htm;
	}
	error_page 500 502 503 504 /50x.html; 报错编码对应页面
	location = /50x.html {
		root html;
	}
}

负载均衡策略

  • down:表示当前的server暂时不参与负载
  • backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
  • weight:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
  • ip_hash:根据客户端的ip地址转发同一台服务器,可以保持回话
  • least_conn:最少连接访问
  • url_hash:根据用户访问的url定向转发请求
  • fair:根据后端服务器响应时间转发请求
动静分离
  • location配置
location前缀匹配规则
/通用匹配,任何请求都会匹配到
=精准匹配
~正则匹配,区分大小写
~*正则匹配,不区分大小写
^~非正则匹配,匹配以指定模式开头的location
  • location匹配顺序
    • 多个正则location直接按书写顺序匹配,成功后就不会继续往后面匹配
    • 普通(非正则)location会一直往下,直到找到匹配度最高的(最大前缀匹配)
    • 当普通location与正则location同时存在,如果正则匹配成功,则不会再执行普通匹配
    • 所有类型location存在时,“=”匹配 > “^~”匹配 > 正则匹配 > 普通(最大前缀匹配)
Url Rewrite配置
rewrite <regex> <replacement> [flag];
flag标记说明:
last #本条规则匹配完成后,继续向下匹配新的location URI规则
break #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

{
	server {
		listen 80; 
		server_name localhost;
		location / {
			rewrite ^/([0-9]+).html$ /order.html?pageNum=$1 break;//将x.html转换到index路径,用于隐藏实际请求路径
			proxy_pass proxyPass; 
		}
	}
}
防盗链
  • none, 检测 Referer 头域不存在的情况。
  • blocked,检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。这种情况该头域的值不以“http://” 或 “https://” 开头。
  • server_names ,设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。
配置到location中
valid referers none | blocked | server_names | strings ....;

location / {
	valid_referers 192.168.44.101;
	if ($invalid_referer) {
		return 403;
	}
}

高可用配置

  • 下载Keepalived
  • 配置keepalived

机器1

	global_defs {
		router_id lb111
	}
	vrrp_instance atguigu {
		state MASTER //状态 master、backup
		interface ens33
		virtual_router_id 51
		priority 100 //优先级,越大主备优先级越高
		advert_int 1
		authentication { //统一集群认证信息需要一致
			auth_type PASS
			auth_pass 1111
		}
		virtual_ipaddress {
			192.168.44.200
		}
	}

机器2

	global_defs {
		router_id lb111
	}
	vrrp_instance atguigu {
		state BACKUP
		interface ens33
		virtual_router_id 51
		priority 99
		advert_int 1
		authentication { //统一集群认证信息需要一致
			auth_type PASS
			auth_pass 1111
		}
		virtual_ipaddress {
			192.168.44.200
		}
	}

https证书配置

{
	server {
		listen 443 ssl;  //监听https 443端口
		server_name localhost;
		ssl_certificate /data/cert/server.crt; //配置证书
		ssl_certificate_key /data/cert/server.key; //配置秘钥
	}
}

学习地址:尚硅谷Nginx教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值