01-Nginx初识

本文详细介绍了Nginx的安装、基本配置及其实战应用,包括如何配置静态资源服务器、负载均衡策略以及路由配置。同时,深入解析了正向代理与反向代理的区别,适合初学者和进阶用户学习。

Nginx初识

  • 在ubuntu 18.04下面的安装教程

一、几个问题?

1.1 Nginx的作用、应用场景?

  • 路由转发:将不同的请求转到到后端不同的服务进程。
  • 负载均衡:将同一个请求分发到服务的不同实例。
  • 静态服务器:存放静态的js、图片、视频、css、html等。

1.2 正向代理和反向代理?

  • 正向代理是客户端代理,比如客户端通过配置一个代理服务器的地址,来访问原本不能直接访问的地址,被访问的资源有可能无法感知到客户端,正向代理一般和客户端在一个局域网(不绝对)作用一般如下:
1.访问原来无法访问的资源,如google,
2.对客户端访问授权,上网进行认证,
3.代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
  • 反向代理是服务端代理,客户端不需要配置反向代理服务器地址,反向代理服务器背后可能隐藏了很多真实的服务器,反向代理服务器对这些服务器做负载均衡、路由、安全保护等功能,反向代理一般和服务器在一个局域网(不绝对)。
1.路由转发
2.负载均衡
3.保证内网(服务器)安全

二、安装

  • 下载包、解压
sudo wget http://nginx.org/download/nginx-1.14.2.tar.gz

sudo tar -zxvf nginx-1.14.2.tar.gz
  • 编译
//编译
cd nginx-1.14.2/
sudo ./configure
sudo make
sudo make install

//查找编译后的命令,默认在/usr/local/nginx
whereis nginx
intellif@master:/opt/nginx/nginx-1.14.2$ whereis nginx
nginx: /usr/local/nginx
  • 启动
cd /usr/local/nginx/sbin
sudo ./nginx

三、Nginx常见命令

3.1 启动停止

./nginx 
./nginx -s stop
./nginx -s quit
./nginx -s reload

四、简单实战

4.1 配置静态资源服务器

  • 修改nginx配置文件,在server节点下面添加如下内容:
location /image/ {
    root  /data/static/;
    autoindex on;
}
  • 如上配置之后,在/data/static下面创建一个image目录,在目录里面放一个a.jpg文件,再访问路径:http://ip/image/1.jpg,就可以展示图片了。注意location后面的/image/,一定要在root所指的路径下面创建一个这样的路径才行,刚开始我理解错了,这样访问http://ip/image/gp_1.jpg没错,但是我直接把图片放在了/data/static下面,但是是不对的,这只是一个root路径,下面可以做很多划分,比如下面可能还有image1,image2,这样前端就可以通过url映射到不同的路径了。

4.2 配置负载均衡

  • 修改配置文件,在server节点下面添加内容,意思是前端的/balance路径映射到一个balanceServer,
location /balance {
    proxy_pass   http://balanceServer;
    index  index.html index.htm;
}
  • 配置balanceServer,在server节点之外添加下面内容,注意不能写到server里面,可以写在server前面,
//下面表示会在2台设备之前做负载均衡,52的权重是3,大概75%的请求会到52服务器,25%的请求会到53服务器
upstream balance {
          server 192.168.13.52:8080 weight=3;
          server 192.168.13.53:8080;
}
  • 除了weight权重之外,还能配置如下:
backup( 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。)
down(表示单前的server暂时不参与负载)

upstream myServer {    
    server 192.168.72.49:9090 down;   
    server 192.168.72.49:8080 weight=2;   
    server 192.168.72.49:6060;   
    server 192.168.72.49:7070 backup;   
}

4.3 路由配置

  • 路由配置和前面的静态服务器配置差不多,都是利用location来配置
location ~/servera {
    proxy_pass http://192.168.13.52:8080;
}

location ~/serverb {
    proxy_pass http://192.168.13.53:8080;
}

  • 前端通过http://ip/servera,或者http://ip/serverb来访问。

五、负载策略

5.1 轮询策略

  • 前面的配置去掉权重就是轮询
upstream balance {
          server 192.168.13.52:8080;
          server 192.168.13.53:8080;
}

5.2 加权轮询

upstream balance {
          server 192.168.13.52:8080 weight=3;
          server 192.168.13.53:8080;
}

5.3 最少连接数策略

  • 请求将转发到连接数较少的服务器上
upstream balance {
    least_conn;
    server 192.168.13.52:8080 weight=3;
    server 192.168.13.53:8080;
}

5.4 Ip Hash策略

  • 该策略可以实现某一客户端的请求固定转发至某一服务器,保证session不会因为负载均衡失效
upstream balance {
    ip_hash;
    server 192.168.13.52:8080 weight=3;
    server 192.168.13.53:8080;
}

六、参考

分布式微服务企业级系统是一个基于Spring、SpringMVC、MyBatis和Dubbo等技术的分布式敏捷开发系统架构。该系统采用微服务架构和模块化设计,提供整套公共微服务模块,包括集中权限管理(支持单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等功能。系统支持服务治理、监控和追踪,确保高可用性和可扩展性,适用于中小型企业的J2EE企业级开发解决方案。 该系统使用Java作为主要编程语言,结合Spring框架实现依赖注入和事务管理,SpringMVC处理Web请求,MyBatis进行数据持久化操作,Dubbo实现分布式服务调用。架构模式包括微服务架构、分布式系统架构和模块化架构,设计模式应用了单例模式、工厂模式和观察者模式,以提高代码复用性和系统稳定性。 应用场景广泛,可用于企业信息化管理、电子商务平台、社交应用开发等领域,帮助开发者快速构建高效、安全的分布式系统。本资源包含完整的源码和详细论文,适合计算机科学或软件工程专业的毕业设计参考,提供实践案例和技术文档,助力学生和开发者深入理解微服务架构和分布式系统实现。 【版权说明】源码来源于网络,遵循原项目开源协议。付费内容为本人原创论文,包含技术分析和实现思路。仅供学习交流使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值