当前位置: 首页 > news >正文

Nginx(负载均衡,反向代理)

1.什么是nginx

Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,**并发**能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

 官网地址:

http://nginx.org/

2.正向代理与反向代理

a.正向代理

在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过代理服务器访问的

例如:通过浏览器我们并不能直接访问谷歌,但是我们可以借助VPN来实现访问,其实这就是一个比较简单的正向代理的例子。

b.反向代理

客户端不需要任何配置就能访问,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器,获取数据后再返回给客户端。对外就一个服务器,暴露的是反向代理服务器地址,隐藏了真实服务器IP地址。代理对象是服务端,不知道客户端是谁。

例如:当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理

3.nginx下载

a:添加官方nginx源

 rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm

b:使用yum下载nginx

yum -y install nginx

yum方式安装nginx,它的安装根目录为/etc/nginx。

c:查看nginx版本:

rpm -qa | grep nginx

d:配置防火墙

将nginx默认访问端口80进入到防火墙中

firewall-cmd --zone=public --add-port=80/tcp --permanent &&
firewall-cmd --reload && 
firewall-cmd --list-port

# 启动nginx服务

systemctl start nginx


# 查询nginx服务启动状态
 

systemctl status nginx

启动成功后,在浏览器中输入访问地址,效果如下:

4.动静分离

Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面。动静分离从目前实现角度来讲大致分为两种,一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起发布,通过Nginx来分开

虚拟域名配置

去本地路径

C:\Windows\System32\drivers\etc

设置虚拟域名

语法    端口号       虚拟域名

查看nginx日志

tail -f /var/log/nginx/error.log

5.反向代理

修改nginx核心配置文件/etc/nginx/conf.d,配置nginx反向代理。

server {listen       80;server_name  www.zking.com;#charset koi8-r;#access_log  logs/host.access.log  main;location ^~ /edu/ {proxy_pass http://127.0.0.1:8080/;}location ^~ /zki/ {proxy_pass http://127.0.0.1:8081/;} 
}

proxy_pass说明是动态请求,需要进行转发,比如代理到Tomcat上。

# 切换到nginx的日志目录

cd /var/log/nginx/


# 查看日志信息
 

tail -f error.log

解决方案:关闭SeLinux

setsebool -P httpd_can_network_connect 1

6.负载均衡

修改nginx核心配置文件/etc/nginx/conf.d,配置nginx负载均衡

upstream tomcats{server 127.0.0.1:8080 weight=1;server 127.0.0.1:8081 weight=2;
}server {listen       80;server_name  www.zking.com;#charset koi8-r;#access_log  /var/log/nginx/host.access.log  main;location ^~ /edu/ {proxy_pass http://127.0.0.1:8080/;}location ^~ /api/ {proxy_pass http://tomcats/;}
}

第一,通过upstream来定义一组Tomcat,并指定负载策略(IPHASH、加权论调、最少连接),健康检查策略(Nginx可以监控这一组Tomcat的状态)等。 第二,将proxy_pass替换成upstream指定的值即可。

相关文章:

  • [实用技巧]Unity中,Sprite和SpriteRenderer的实用小贴士
  • 汽车标定技术(二十一)--英飞凌TC3xx的OLDA怎么玩?(2)
  • Python 造数据神器Faker
  • 如何在window中快速建立多个文件夹?
  • Java技术精粹:高级面试问题与解答指南(二)
  • Python中动态调用C#的dll动态链接库中方法
  • node环境问题(无法加载文件D:\Software\Node.js\node_global\vue.ps1,因为在此系统上禁止运行脚本。)
  • 必应bing国内广告开户首充和开户费是多少?
  • 来盘点我的校园生活(4)
  • 计划跳槽需要做哪些准备?
  • Spring Boot 实现 RabbitMQ 监听消息的几种方式
  • 系统架构师考试(十)
  • 爱设计AiPPT.cn赵充:营销工作的AI进化
  • Android Settings系统属性读写
  • Linux(openEuler22.03) 定时备份任务 解决方案
  • 「译」Node.js Streams 基础
  • 【comparator, comparable】小总结
  • 【RocksDB】TransactionDB源码分析
  • 【前端学习】-粗谈选择器
  • 【刷算法】求1+2+3+...+n
  • Android框架之Volley
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java 23种设计模式 之单例模式 7种实现方式
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Linux Process Manage
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • node.js
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • SOFAMosn配置模型
  • Sublime text 3 3103 注册码
  • WePY 在小程序性能调优上做出的探究
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于Android乐音识别(2)
  • 浅谈web中前端模板引擎的使用
  • 如何设计一个比特币钱包服务
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​ArcGIS Pro 如何批量删除字段
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • !!Dom4j 学习笔记
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (C语言)逆序输出字符串
  • (poj1.2.1)1970(筛选法模拟)
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (四)进入MySQL 【事务】
  • (未解决)macOS matplotlib 中文是方框
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)nsfocus-绿盟科技笔试题目
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .apk 成为历史!