前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速入门Nginx【正向反向daili,负载均衡的概念,学会Nginx的安装和常用命令,并在实际中去应用Nginx】

快速入门Nginx【正向反向daili,负载均衡的概念,学会Nginx的安装和常用命令,并在实际中去应用Nginx】

作者头像
汀丶人工智能
发布2023-10-11 16:20:46
3590
发布2023-10-11 16:20:46
举报
文章被收录于专栏:NLP/KG

1.背景介绍:

当用户使用较少时,低并发的情况下,使用内部tomacat返回给用户:

 但是随着用户的增多,一台服务器无法满足需求

则需要横向扩展,增加服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转发和处理请求(反向代理)。

 负载均衡:(内存大的服务器权重给大点,访问请求偏向该服务器)

 希望这个代理服务器可以帮助我们接收用户的请求,然后将用户的请求按照规则帮我们转发到不同的服务器节点之上。这个过程用户是无感知的,用户并不知道是哪个服务器返回的结果,我们还希望他可以按照服务器的性能提供不同的权重选择。保证最佳体验!所以我们使用了Nginx。

1.1 Nginx简介

 Nginx (engine x) 是一个高性能【响应反应更快和并发强】的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务【邮件服务】

官网下载地址:nginx: download

  • 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  • Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
  • Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。

提供的服务:

  • 动静分离(web 服务)
  • 负载均衡 (反向代理)
  • web 缓存
  • 内存少,并发能力强(支持50,000 个并发)

1.2 Nginx作用

1.2.1 正向代理和反向代理

正向代理(代理客户端):用户知道目标服务器地址,但由于网络限制等原因,无法直接访问。这时候需要先连接代理服务器,然后再由代理服务器访问目标服务器。

反向代理(代理服务器端):反向代理对用户则是不可知的,比如我们访问百度网站,百度的代理服务器对外的域名为 https://www.baidu.com 。具体内部的服务器节点我们不知道,现实中我们通过访问百度的代理服务器后,代理服务器给我们转发请求到他们N多的服务器节点中的一个给我们进行搜索后将结果返回。

 客户端访问一个ip,自动区选取空闲服务器,但是ip地址不变

image-20210829163200575
image-20210829163200575
1.2.1 负载均衡

轮询:可以理解为各个服务器权重都为1,请求依次分配 如下图所示:

加权轮询:加上权重给不同服务器分配不同个数任务,性能好的分配请求处理多点,这样可以保证整体服务器利用资源最大化。

iphash:对客户端请求的ip进行hash操作,然后根据hash结果将同一一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。

其中:Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间

核心是对ip分配服务器,实现session的共享,不建议使用【如果对应服务器挂了,则这台服务器的信息也全部丢失了】,一般使用redis

动静分离: 动静分离,在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如: Css、 html. jpg、js等等文件),这些不需要经过后台处理的 文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来, 动静资源做好了拆分以后,我们就可以根据静态资源的特点将其 做缓存操作。提高资源响应的速度。

2.windows下安装Nginx

链接:nginx: download,选择稳定版本即可

 下载解压即可使用

启动nginx

(1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过

(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可 推荐:

检查nginx是否启动成功

直接在浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功!

配置监听

nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。

 当我们修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行命令 nginx -s reload 即可让改动生效

关闭nginx

如果使用cmd命令窗口启动nginx, 关闭cmd窗口是不能结束nginx进程的,可使用两种方法关闭nginx (1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx) (2)使用taskkill taskkill /f /t /im nginx.exe

代码语言:javascript
复制
taskkill是用来终止进程的,
/f是强制终止 .
/t终止指定的进程和任何由此启动的子进程。
/im示指定的进程名称 .

3.linux下安装Nginx

参考:Nginx快速入门-KuangStudy-文章

 解压文件:

代码语言:javascript
复制
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0

配置:使用默认配置,在nginx根目录下执行

代码语言:javascript
复制
./configure
make
make install

查找安装路径: whereis nginx

 执行nginx程序,

 注意:如何连接不上,检查阿里云安全组是否开放端口,或者服务器防火墙是否开放端口! 相关命令:

代码语言:javascript
复制
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;

4.常用命令

代码语言:javascript
复制
cd /usr/local/nginx/sbin/
./nginx  启动
./nginx -s stop  停止
./nginx -s quit  安全退出
./nginx -s reload  重新加载配置文件
ps aux|grep nginx  查看nginx进程

5. nginx实战演示配置管理

最终项目配置可参考:狂神大佬相关教程:【狂神说】Nginx最新教程通俗易懂,40分钟搞定!_哔哩哔哩_bilibili

Nginx入门使用-KuangStudy-文章

 配置文件:

 简单可以看成:

性能配置就在全局配置和events中,负载均衡,反向代理就在http中实现;location作用:不同服务器负责不同部分

代码语言:javascript
复制
upstream lb{
    server 127.0.0.1:8080 weight=1;
    server 127.0.0.1:8081 weight=1;     负载均衡
}
location / {
    proxy_pass http://lb;  反向代理
}

 配置完成后:nginx -s reload  重新加载配置文件

 整体流程如下图:

动静分离:

html默认请求80端口,如果想要请求443端口,通过rewrite实现

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.背景介绍:
    • 1.1 Nginx简介
      • 1.2 Nginx作用
        • 1.2.1 正向代理和反向代理
        • 1.2.1 负载均衡
    • 2.windows下安装Nginx
    • 3.linux下安装Nginx
    • 4.常用命令
    • 5. nginx实战演示配置管理
    相关产品与服务
    负载均衡
    负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档