Nginx是什么?怎么用?(新手入门版)教程
一、Nginx介绍
1.1 引言
为什么要学习Nginx?
问题场景:
服务器搭建集群后:
服务器搭建集群后,使用Nginx做反向代理服务器
1.2 Nginx背景
- Nginx是由俄罗斯人研发的,应对Rambler的网站,并且2004年发布了第一个版本
- Nginx的特点:
- 稳定性极强。7*24小时不间断运行。
- Nginx提供了非常丰富的配置实例。
- 占用内存小,并发能力强
- 能承受5w并发
二、Nginx安装(重点来喽)
2.1 安装Nginx
思路:使用docker在linux服务器上安装,如果没有docker可参考 ↓↓↓(温馨提示:超简单)
https://blog.csdn.net/Object_de_Father/article/details/109427164
下面我们撸起袖子开始干代码:
version: '3.1'
services:nginx:restart: alwaysimage: daocloud.io/library/nginx:1.13.0-alpinecontainer_name: nginxports:- 80:80
2.2 Nginx的配置文件
user nginx;
worker_processes 1; //这个值的大小和并发量有关系,值越大支持并发量越大error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;events {worker_connections 1024;//这个值的大小和并发量有关系,值越大支持并发量越大
}http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout 65;#gzip on;- nginx.conf 1/32 3%
2.3修改Docker-compose文件
version: '3.1'
services:nginx:restart: alwayscontainer_name: nginxports:- 80:80volumes:- /root/app/nginx/conf.d/:/ect/nginx/conf.d
三、Nginx的反向代理
3.1 正向代理
- 正向代理时由客户端设立的。
- 客户端了解代理服务器和目标服务器都是谁。
- 帮助咱们突破访问权限,提高访问的速度,对目标服务器隐藏客户端的ip地址。
3.2 反向代理
- 反向代理服务器适配实在服务端的。
- 客户端是不知道访问的到底是哪一台服务器。
- 达到负载均衡,并且可以隐藏服务器真正的ip地址
3.3 基于Nginx实现反向代理
- 准备一个目标服务器(tomcat)。
- 编写nginxdd的配置文件,通过nginx访问到tomcat服务器
server{listen 80;server_name localhost;#基于反向代理访问到tomcat服务器location / {proxy_pass http://网址:8080/;}
}
3.4 关于Nginx的location路径映射
# 1.精准匹配,例如www.baidu.com就能匹配到,www.baidu.com/×××就不行
location = / {# 匹配和定制规则完全相同的路径,优先级最高
}# 2.通用匹配
location /××× {# 匹配所有以/×××开头的路径
}#3.正则匹配
location ~/××× {# 匹配所有以/×××开头的路径,优先级要高于通用匹配
}#4.匹配开头路径
location ^~ /laojiang/{# 匹配所有以laojiang开头的路径,优先级高于正则匹配
}#5.匹配指定格式路径
~*\.(gif|jpg|png)$ {# 匹配以gif或者jpg或者png为结尾的路径
}
四、Nginx的负载均衡
4.1 Nginx默认提供了三种负载均衡策略:
轮询法
- 将客户端发起的请求,平均的分配给每一台服务器。
加权法
- 会将客户端的请求,根据服务器的权重值不同,分配不同的数量。
ip_hash法(源hash法)
- 基于发起请求的客户端的ig地址不同,他始终会将请求发送到指定的服务器上。|
4.2 轮询法
想要实现Nginx轮询负载均衡机制只需在文件中添加以下内容
upstream 自定义名称 {server 路径(ip:port);server 路径(ip:port);... } server{listen 80;server_name localhost;location / {proxy_pass http://上面upstream的名称/;} }
4.3 加权法
实现加权法的方式。在轮询法的基础之上进行
upstream 自定义名称 {server 路径(ip:port) weight 加权数;//这里就是和轮询法重要的区别server 路径(ip:port) weight 加权数;... }
4.4 ip_hash法(源hash法)
实现ip_hash法(源hash法)的方式。在轮询法的基础之上进行
upstream 自定义名称 {ip_hash; //加在在这里哦server 路径(ip:port);server 路径(ip:port);... }
五、Nginx的动静分离
- Nginx的并发公式:
- worker_processes * connections / 4 | 2 =Nginx最终的并发能力
- 原因:动态资源需要 / 4 ,静态资源需要 / 2
- Nginx通过动静分离,来提升Nginx的并发能力,更快的给用户响应
5.1 动态资源代理
# 配置如下
location / {proxy_pass 路径;
}
5.2 静态资源代理
# 配置如下
location / {root 静态资源路径;index 默认访问路径下的什么资源;autoindex on; #代表以列表的形式展示静态资源下的全部内容
}
Nginx是什么?怎么用?(新手入门版)教程相关推荐
- 阿里云服务器购买及使用流程(新手入门图文教程)
阿里云服务器购买及使用流程(新手入门图文教程) 一.登录及密码重置 二.远程连接 三.网络安全组设置 进入 https://www.aliyun.com/,选择所需ESC的配置并购买(选择时可参考购买 ...
- 微风:AI新手入门学习教程
大家好我是微风,一个爱设计爱生活的平面设计师,最近总有一些朋友问我,零基础学习AI软件好学吗,AI新手学习软件好操作嘛,那么今天的这篇文章主要给大家介绍下新手AI新手入门学习教程以及学习平面设计分为哪 ...
- 程序人生:黑帽seo新手入门基础教程
黑帽搜索引擎优化新手入门基础教程 从原理来看,使用黑帽搜索引擎优化技术做排名,与白帽搜索引擎优化是一样的.从细化的操作来看,则有很大的不同.黑帽搜索引擎优化新手入门基础教程是概述的相关黑帽搜索引擎优化 ...
- 程序人生:黑帽seo新手入门基础教程 1
黑帽搜索引擎优化新手入门基础教程 从原理来看,使用黑帽搜索引擎优化技术做排名,与白帽搜索引擎优化是一样的.从细化的操作来看,则有很大的不同.黑帽搜索引擎优化新手入门基础教程是概述的相关黑帽搜索引擎优化 ...
- JCL新手入门学习教程(1) 2021-02-09
JCL新手入门教程 一.JCL介绍 JCL作业控制语言(Job Control Language) 定义和控制程序的执行,以根据输入获得所需的输出 是一组步骤,其中每个步骤都有一个特定的任务要完成,也 ...
- Mangos完全源码编译架设教程,新手入门版
一.先决条件: 1. Visual Studio 2003 或者是Visual Studio 2005这个是编译必备. 2. MySQL 4.1 去官方下在4.1.22版本的就可以或者更高版本 3. ...
- C# Cad二次开发新手入门系列教程(一)开发环境搭建
目录 前言 开发需要做什么准备? 编写自己的第一个程序 前言 本课程主要针对刚接触Cad二次开发或者准备入门Cad二次开发的朋友,笔者是用的C#进行开发,在该系列教程内,笔者会带着大家从最基础的开发到 ...
- 新手做seo该怎么做?seo新手入门基础教程
SEO作为一种获取搜索引擎流量的手段,一度受到很多人的追捧.如果做得好,效果是好的.但是基本的入门知识也很重要.只有掌握了基本的入门知识,才能取得好的效果.[百度SEO快排]战神快排小编整理发布. 学 ...
- 易语言零基础新手入门系列教程 第一课
机器人小鑫易语言源码(作业用): 机器人小鑫源码 - 第一课.zip 视频教程文字版: 新手学习易语言的几点建议 1.由浅入深.由易到难.循序渐进,切勿急功近利,想一步登天! 这是学习的一般规律,学习 ...
最新文章
- Visual C++ 对话框增加菜单栏
- TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比—daidingdaiding
- windows下sshfs挂载远程文件夹-server could not connect故障解决
- 华为将升级鸿蒙,华为将弃用安卓?Mate40将成为首款可升级鸿蒙OS的手机
- Spring MVC学习总结(11)——Spring MVC集成Swagger跨域问题
- 【Vegas2006】8月11日-咖啡生活
- Android加载自定义字体出错,盘点Android使用自定义字体遇到的坑
- 智慧消防技术在安全管理中的应用与研究
- C语言利用指针实现字符串逆序输出
- 硬核!深信服春招3面,终获20k入职offer!
- 怎么预防和清除计算机病毒,预防和清除计算机病毒的方法
- 迈微科讯 | 最新科技发展资讯
- PMU电池管理配置与io-domain电源域
- bugkuCTF---flag在index里
- docker - 安装searx搜索引擎
- 简易的定时发送生日邮件功能(Listener+定时器+使用java发送邮件)
- 均衡教育计算机室整改方案,义务教育均衡发展工作存在的问题整改方案.docx
- 面对压力,逃避还是面对?
- 在公众号文章中添加**人员名单
- Lifecycle与LiveData的珠联璧合