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

阶段十-分布式-nginx服务器

一、Nginx简介

Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。tomcat并发数量理论值是500,实际也就300左右。

1.2 正向代理

正向代理代理的是客户端,帮客户端发送请求给目标服务器,服务器响应后,由代理服务器将响应内容返回给客户端。使客户端对目标服务器不可见。比较常见的用户场景就是翻墙。

1.3 反向代理

 反向代理在生产中应用还是比较多的,代理服务器代理目标服务器,负责收发请求,目标服务器对客户端来说是不可见的,不过客户端请求目标服务器和请求代理是一样的效果。比较常见的场景就是nginx的负载均衡

1.4 负载均衡

 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。

1.5 动静分离

将网站的动态资源和静态资源分别部署到不同的服务器,并由nginx统一调用。

二、Nginx安装

【1】安装pcre依赖

1.下载压缩包:wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
2.解压压缩包:tar -xvf pcre-8.37.tar.gz
3.安装gcc:yum install gcc
4.安装gcc:yum install -y gcc gcc-c++
5.在pcre-8.37目录输入:./configure 
6.在pcre-8.37目录输入:make && make install

【2】安装 openssl 、zlib 、 gcc 依赖

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

【3】安装nginx

1.将nginx压缩包上传到usr/local目录下
2.解压到当前目录:tar -xvf nginx-1.12.2.tar.gz
3.进入nginx-1.12.2目录输入:./configure
4.进入nginx-1.12.2目录输入:make && make install

【4】启动nginx

1.进入sbin目录:cd /usr/local/nginx/sbin
2.启动服务:./nginx 

【5】关闭防火墙

1.及时生效关闭防火墙: systemctl stop firewalld
2.重启永久生效:systemctl disable firewalld

【6】访问首页

自己虚拟机的ip

三、Nginx常用命令

必须保证先进入cd /usr/local/nginx/sbin 目录中即nginx目录中

【1】查看nginx版本号        ./nginx -v

【2】启动nginx        ./nginx

【3】停止nginx        ./nginx -s stop

【4】重新加载nginx        ./nginx -s reload

四、Nginx配置文件

Nginx配置文件的位置在: /usr/local/nginx/conf/nginx.conf

Nginx配置文件主要分为如下三部分

【1】全局块:配置服务器整体运行的配置指令

比如 worker_processes 1;处理并发数的配置

【2】events 块:影响 Nginx 服务器与用户的网络连接

比如 worker_connections 1024; 支持的最大连接数为 1024

【3】http 块包含两部分: http 全局块、server 块

五、Nginx反向代理配置案例

1.将windows系统的host文件进行域名和 ip 对应关系的配置

192.168.8.130    www.lsh.com

自己虚拟机的ip 

2.在 nginx 进行请求转发的配置(反向代理配置)

转发地址的路径支持正则表达式,见下面

5. Nginx中的正则表达式

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。

2、~:用于表示 uri 包含正则表达式,并且区分大小写。

3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。

4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后, 立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

六、Nginx负载均衡

 【1】完成负载均衡配置

七、总结

【1】什么是nginx服务器,nginx服务器是干什么用的,你都用过哪些功能?

答:nginx是http服务器,也是反向代理服务器,可以做静态网站资源服务器,也可以做反向代理服务器。用过负均衡、反向代理、动静分离、http服务器等功能。

nginx并发是50000,tomcat(500是理论值)大概300左右。

【2】nginx的常用命令

答:./nginx 启动 ./nginx -v 查看版本 ./nginx -s stop 关闭 ./nginx -s reload 重新加载配置文件

【3】nginx如何配置静态服务

答:在/nginx/conf/nginx.conf中做如下配置

location /imgs/ {root /data/;autoindex on;
}
location /page/ {root /data/;autoindex on;
}

【4】如何配置反向代理

答:在/nginx/conf/nginx.conf做如下配置

location ~ /vod {proxy_pass http://127.0.0.1:8082;
}

反向代理支持表达式如下:

location [= | ~ | ~* | ^~] /uri{
​
}

【5】负载均衡配置

答:在nginx/conf/nginx.conf做如下配置

upstream mystream {server 127.0.0.1:8080 ;server 127.0.0.1:8081 ; 
}
location ~ /edu {proxy_pass http://mystream;
}

【6】什么是反向代理

答:正向代理代理的是客户端访问服务端,反向代理代理的是服务端,等待客户端访问代理服务。

具体配置

location ~ /edu {proxy_pass http://mystream;
}

【7】什么是动静分离

答:静态资源配置到nginx服务器中,动态资源通过nginx反向代理到tomcat。

相关文章:

  • 【C#与Redis】--高级主题--Redis 哨兵
  • 【全局光照GI系统剖析_Enlighten和Progressive Lightmapper_案例分享(附带场景下载链接)_场景】
  • wy的leetcode刷题记录_Day70
  • 配置ssh免密登录
  • Vue学习计划-Vue3--核心语法(一)OptionsAPI、CompositionAPI与setup
  • go 使用 - sync.Metux
  • 计算机网络【Cookie和session机制】
  • 计算机软件考试试题——附答案
  • 使用Vite创建React + TypeScript(node版本为16.17.0,含资源下载)
  • 再见2023,你好2024!
  • Javascript 正则表达式零宽断言
  • 【算法】哈希算法和哈希表
  • git unable to create temporary file: No space left on device(git报错)
  • 文件内容搜索利器 - grep
  • 【谷歌云】注册谷歌云 创建Compute Engine
  • 78. Subsets
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • javascript 总结(常用工具类的封装)
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • mongodb--安装和初步使用教程
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • passportjs 源码分析
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 阿里云购买磁盘后挂载
  • 从输入URL到页面加载发生了什么
  • 漂亮刷新控件-iOS
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 我有几个粽子,和一个故事
  • 选择阿里云数据库HBase版十大理由
  • ​linux启动进程的方式
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #pragma multi_compile #pragma shader_feature
  • (6)设计一个TimeMap
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C++)八皇后问题
  • (k8s中)docker netty OOM问题记录
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (六)vue-router+UI组件库
  • (生成器)yield与(迭代器)generator
  • (十一)c52学习之旅-动态数码管
  • (算法)N皇后问题
  • (转)Mysql的优化设置
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .Net Core和.Net Standard直观理解
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .Net Winform开发笔记(一)
  • .NET中 MVC 工厂模式浅析
  • :=
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @DependsOn:解析 Spring 中的依赖关系之艺术