nginx配置详细讲解(Nginx服务快速入门教程)
nginx配置详细讲解
Nginx服务快速入门教程目录
- 一、Nginx介绍
- 1. 什么是Nginx?
- 2. 为什么要使用Nginx?
- 3. 什么是正向代理?
- 4. 什么是反向代理?
- 二、Nginx在Linux下的安装
- 1. 下载
- 2. 安装
- 三、Nginx配置入门
- 1. 配置文件
- 2. 反向代理单个服务器
- 3. 反向代理多台服务器
- 四、运行测试
- 1. 启动服务
- 2. 关闭服务
- 五、负载均衡
- 1. 什么是负载均衡?
- 2. 配置Nginx负载均衡
1. 什么是Nginx?
- Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
- 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
2. 为什么要使用Nginx?
随着当今互联网的迅速发展,单点服务器早已无法承载上万个乃至数十万个用户的持续访问。比如一台Tomcat服务器在理想状态下只能够可以承受住2000个左右的并发量,为了解决这个问题,就需要多台Tomcat服务器来进行负载均衡。
那么,应该如何实现负载均衡?Nginx就是其中的一种解决方案,当用户访问网站时,Nginx拦截到这个访问请求,并将其通过轮询的方式均匀地分配到不同的服务器上。
并且,在Nginx中有一种ip_hash策略,它可以获取到用户的真实IP,计算出hash值来选择服务器,这也是一种优秀的负载均衡方式。 所以,掌握Nginx成为了Web开发学习道路上不可缺少的一部分。
3. 什么是正向代理?
正向代理,就是客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器。我们常用的VPN就是一种代理服务器,为了可以连上国外的网站,客户端需要使用一个可以连接外网的服务器作为代理,并且客户端能够连接上该代理服务器。
4. 什么是反向代理?
反向代理与正向代理不同,正向代理是代理了客户端,而反向代理则是代理服务器端。在有多台服务器分布的情况下,为了能让客户端访问到的IP地址都为同一个网站,就需要使用反向代理。
明白了反向代理的工作机制后,接下来就可以进入Nginx的学习!
二、Nginx在Linux下的安装由于Nginx被大量使用在Web服务器中,所以本教程选择了Centos服务器的7.4版本作为演示!
1. 下载
进入官方下载页面:http://nginx.org/en/download.html,选择Stable version稳定版本进行下载,并上传至服务器。
2. 安装
上传tar包至服务器后,解压到当前目录
tar -zxvf nginx-1.18.0.tar.gz -C ./
进入解压后的目录,执行configure脚本
cd nginx-1.18.0/ ./configure
使用make命令进行安装
make && make install
安装完成后,使用whereis命令查找Nginx的安装位置 (默认安装在/user/local/目录下)
whereis nginx
进入安装目录下的bin文件夹,启动nginx服务,访问服务器默认的80端口查看是否安装成功!
三、Nginx配置入门1. 配置文件
在Nginx的安装目录下有一个conf文件夹,打开其中的nginx.conf文件
cd conf/ && vim nginx.conf
2. 反向代理单个服务器
那么,如何使用Nginx进行反向代理?
在location参数中添加proxy_pass字段,并填写需要反向代理的服务器地址与端口号:
注意:每一行的配置都需要以封号结尾!!!
# 配置监听的目录为:/ location / { root html; index index.html index.htm; proxy_pass http://127.0.0.1:8080; # 反向代理了本机的8080端口 # proxy_pass http://127.0.0.1:8081; # 可以同时配置多条proxy_pass,反向代理了本机的8081端口 }
3. 反向代理多台服务器
如果有多台服务器怎么办?除了不断地添加proxy_pass参数,更好的解决方案是配置upstream服务器组!
在配置文件的http块中添加upstream属性:
# 配置服务器组,取名为hello upstream hello{ # 一个server对应一个服务器,当然也可以是不同端口的web程序 server 127.0.0.1:8080; server 127.0.0.1:8081; } # 在location块中修改反向代理为服务器组 location / { root html; index index.html index.htm; proxy_pass http://hello; # 反向代理了hello服务器组中的所有服务器 }
1. 启动服务
配置完成后,进入Nginx安装目录下的sbin文件夹,运行nginx程序即可:
/usr/local/nginx/sbin/nginx
如果之前已经启动,无需关闭nginx服务,只需要让nginx重新加载配置文件即可:
nginx -s reload
刷新浏览器,若反向代理成功,访问的路径会自动映射到配置文件中的服务器地址!
将来,随着用户量的增长,可能需要添加新的服务器;这时只需要修改配置文件,使用 nginx -s reload 命令即可,无需关闭nginx服务器!
2. 关闭服务
关闭nginx服务的方式一般分为两种:
nginx -s stop # 立即停止,无论是否在工作 nginx -s quit # 等待进程完成当前工作后安全退出
1. 什么是负载均衡?
由于不同服务器的配置不同,为了让性能高的服务器分配到更多的请求,便引入了负载均衡的概念。
前面提到过,Nginx的负载均衡方式可以有很多种,如加权轮询(默认)、IP哈希、url哈希等等,这里就以加权轮询作为介绍。
加权轮询,也就是通过给服务器添加各自的权重值,Nginx通过权重来进行请求的分配,权重越高接收到的请求数量越多,反之越少:
上图配置了三台服务器,在加权轮询的模式下,6次不同的请求中,权重为3的服务器将会分配到3次请求,权重为2的服务器会分配到2个请求,权重为1的服务器则会分配到1个请求。负载均衡大大减少了在高并发的环境下服务器宕机的风险!
2. 配置Nginx负载均衡
同样地,打开nginx.conf文件进行配置:
vim nginx.conf
在upstream块中添加weight参数:
upstream hello{ server 服务器1:8080 weight=3; # 配置服务器1的权重为3 server 服务器2:8080 weight=1; # 配置服务器2的权重为1 }
添加完成后执行 nginx -s reload 即可!
以上就是Nginx服务快速入门教程的详细内容,更多关于nginx入门教程的资料请关注开心学习网其它相关文章!
- nginx学习需要哪些知识(一篇文章搞懂Nginx是什么,能干什么)
- nginx优化安全设置(nginx优化的六点方法)
- dockernginx服务器教程(Docker镜像+nginx 部署 vue 项目的方法)
- linuxnginx常用状态命令(nginx常用命令放入shell脚本详解)
- nginx配置详解(Nginx进程管理和重载原理详解)
- nginx怎么支持http转https(Nginx域名转发https访问的实现)
- 宝塔nginx装哪个版本(宝塔面板nginx关闭状态,启动不了解决办法)
- nginx404错误页面设置(Nginx tp3.2.3 404问题解决方案)
- nginx反向代理流程详解(本地通过nginx配置反向代理的全过程记录)
- nginx最佳配置(nginx和lvs各自的优劣以及适合的使用环境)
- nginx django部署(uwsgi+nginx代理Django无法访问静态资源的解决)
- 宝塔面板phpMyAdmin错误教程(宝塔面板phpMyAdmin报错502 Bad Gateway nginx解决方法)
- dedecms标签调用原理(DEDECMS安全设置 执行php脚本限制设置方法apache+nginx)
- nginx如何代理项目(Nginx代理同域名前后端分离项目的完整步骤)
- nginx对静态文件开启缓存(nginx proxy_cache 缓存配置详解)
- nginx反向代理端口号(nginx 代理80端口转443端口的实现)
- 三分71 生死战爆发 篮网旧将丁威迪今天成奇兵,助队赢球(三分71生死战爆发)
- 《红 雄安》系列广播剧第一集 水上奇兵雁翎队(雄安系列广播剧第一集)
- 小说 小伙穿越成刘备,用现代知识指挥作战,众谋士都看呆了(小伙穿越成刘备)
- 解析葡萄牙6-1瑞士 进攻多点开花,贡萨洛-拉莫斯一战成名(解析葡萄牙6-1瑞士)
- 这支 奇兵队 腕大 有范儿还各怀绝技,毒贩杀人犯见了都要仓皇而逃(这支奇兵队腕大)
- 雄藩崛起 奇兵队与幕末长州藩军事改革(雄藩崛起奇兵队与幕末长州藩军事改革)
热门推荐
- sqlserver的图形表(SQL Server纵表与横表相互转换的方法)
- mysql中FIND_IN_SET函数
- dedecms数据库备份地址(dedecms搬家时出现数据库导入失败的解决方法)
- python对于gbk处理(Python 2/3下处理cjk编码的zip文件的方法)
- 微信公众号文章 爬虫(python抓取搜狗微信公众号文章)
- css实现水平垂直居中的方式有哪些(css让容器水平垂直居中的7种方式)
- 详解Vue3中Teleport的使用(详解Vue3中Teleport的使用)
- python如何一行行读取文件(python 实现一次性在文件中写入多行的方法)
- php最好的探针(php探针不显示内存解决方法)
- pandas删除特定条件的行(pandas删除指定行详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9