<h1>I am Hi<h1>啊,这样的话配置是不是很难啊?
你想多了,敲简单的 。
修改我们配置文件中的server快,如下:
server { listen 8888 ; ##设置我们nginx监听端口为8888 server_name [服务器的ip地址]; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location /hi/ { proxy_pass http://127.0.0.1:8080; ##需要代理的服务器地址 index index.html; }location /hello/ { proxy_pass http://127.0.0.1:8081; ##需要代理的服务器地址 index index.html; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }在浏览器中输入:服务器ip:8888/hi/hi.html
浏览器显示 I am hi 对应服务器端口为 8080
在浏览器中输入:服务器ip:8888/hello/hello.html
浏览器显示 I am hello 对应服务器端口为 8081
从而实现了针对不同url请求分发给不同服务器的功能配置 。
少侠,且慢,你是不是忘了什么东西,location /hello/ 是什么意思,只能这么写么?
当然不是 。学会location指令匹配路径,随便换姿势
location指令说明:
功能:用于匹配URL
语法如下:
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求 。2、~:用于表示 uri 包含正则表达式,并且区分大小写 。3、~*:用于表示 uri 包含正则表达式,并且不区分大小写 。4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配 。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识 。到这里,关于nginx如何简单的配置一个反向代理服务器就大功告成了,下面我们来说一下怎么实现负载均衡的简单配置 。
4.2 nginx配置负载均衡
在nginx中配置负载均衡也是十分容易的,同时还支持了多种负载均衡策略供我们灵活选择 。首先依旧是准备两个tomcat服务器,一个端口为8080,一个端口为8081,这里呢,推荐大家用docker部署,太方便了,什么,不会docker,可以移步我的面向后端的docker初级入门教程,真的挺好用,省了很多工作量 。
然后修改我们的http块如下:
http {###此处省略一大堆没有改的配置 ##自定义我们的服务列表 upstream myserver{ server 127.0.0.1:8080; server 127.0.0.1:8090; } server { listen 8888 ; ##设置我们nginx监听端口为8888 server_name [服务器的ip地址]; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { proxy_pass http://myserver; ##叮,核心配置在这里 proxy_connect_timeout 10; #超时时间,单位秒 } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }}这就完了?当然还没有,之前就有说过,nginx提供了三种不同的负载均衡策略供我们灵活选择,分别是:
- 轮询(默认方式): 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除 。
- 用法:啥也不加,上文实例就是默认的方式,就是默认的
- 权重(weight): weight 代表权重,默认为 1,权重越高被分配的客户端越多,权重越大,能力越大,责任越大,处理的请求就越多 。
- 用法:
- ip_hash:每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题 。
- 用法:
接下来说最后一个实例,动静分离的简单配置 。
等等,我记得明明是四个,明明还有一个正向代理呢?
这个,爱国守法,人人有责,有需要访问某些国内不能访问的网站需求的同学,可以自行下去查阅资料 。
至于怎么配置正向代理,咱也不知道,咱也不敢说,咱也不敢问 。
基础篇回顾:
动静分离就是把很少会发生修改的诸如图像,视频,css样式等静态资源文件放置在单独的服务器上,而动态请求则由另外一台服务器上进行,这样一来,负责动态请求的服务器则可以专注在动态请求的处理上,从而提高了我们程序的运行效率,与此同时,我们也可以针对我们的静态资源服务器做专属的优化,增加我们静态请求的响应速度 。
推荐阅读
- Linux上TCP的几个内核参数调优
- 一次几乎不可能的数据库迁移
- 深入理解 Linux 内核中的 RCU 机制
- 最丑的外星人 外星生物长什么样子
- 三国演义中的真实事件 三国演义真实存在的事件
- 狼的知识点 狼的相关知识
- 6款Windows良心优质软件推荐,需要的自取
- 考古并不是简单的将珍贵文物挖掘出来呈现给世人 孔子看到的不一定是真实的故事
- Google关键字广告文案怎么写?借鉴同行的谷歌广告文案吧
- 如何调用竞争对手的网站流量?查看别人哪些关键字排名最高?
