阶段十-分布式-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。