Nginx
- 一、Nginx简介
- 二、Nginx 作为 web 服务器
- 2.1 正向代理
- 2.2 反向代理
- 2.3 正向代理和反向代理的区别
- 三、安装
- 四、常用命令
- 五、Nginx的配置文件
- 5.1 反向代理实例一
- 5.1.1 实现效果
- 5.1.2 环境配置
- 5.1.3 测试
- 5.2 反向代理实例二
- 5.2.1 实现效果
- 5.2.2 环境配置
- 5.2.3 测试
- 5.2.4 location 指令说明
- 六、负载均衡
- 6.1 实现效果
- 6.2 环境配置
- 6.3 测试
- 七、动静分离
- 7.1 实现效果
- 7.2 环境准备
- 7.3 测试
- 八、高可用
- 8.1 环境准备
- 8.2 测试
- 九、优秀文章
一、Nginx简介
Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少
,并发能力强
二、Nginx 作为 web 服务器
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。
2.1 正向代理
正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。
2.2 反向代理
反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理,其实是"代理服务器"代理了"目标服务器",去和"客户端"进行交互。
通过反向代理服务器访问目标服务器时,客户端是不知道真正的目标服务器是谁的,甚至不知道自己访问的是一个代理。
2.3 正向代理和反向代理的区别
虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。
1、正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。
2、正向代理一般是客户端架设的,比如在自己的机器上安装一个代理软件。而反向代理一般是服务器架设的,比如在自己的机器集群中部署一个反向代理服务器。
3、正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。
4、正向代理和反向代理的作用和目的不同。正向代理主要是用来解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。二者均能提高访问速度。
三、安装
推荐网络yum源
(1)安装 pcre 依赖
tar –xvf pcre-8.37.tar.gz
进入源码目录
./configure && make && make install
(2)安装 openssl 、zlib 、 gcc 依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
(3)安装 nginx
tar –xvf nginx…
进入源码目录
./configure && make && make install
进入目录 /usr/local/nginx/sbin/nginx 启动服务
四、常用命令
五、Nginx的配置文件
nginx 配置文件位置
安装完nginx之后,配置文件位置如下
/usr/local/nginx/conf/nginx.conf
配置文件中的内容 包含三部分内容
(1)全局块:配置服务器整体运行的配置指令 比如 worker_processes 1;处理并发数的配置
(2)events 块:影响 Nginx 服务器与用户的网络连接 比如 worker_connections 1024; 支持的最大连接数为 1024
(3)http 块 还包含两部分: http 全局块 server 块
5.1 反向代理实例一
5.1.1 实现效果
使用 nginx 反向代理,访问www.123.com
直接跳转到 127.0.0.1:8080
5.1.2 环境配置
5.1.3 测试
访问Nginx代理服务器的IP将会转发到本地tomcat服务器
5.2 反向代理实例二
5.2.1 实现效果
使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中 nginx 监听端口为 9001
访问 http://127.0.0.1:9001/edu/
直接跳转到 127.0.0.1:8081
访问 http://127.0.0.1:9001/vod/
直接跳转到 127.0.0.1:8082
5.2.2 环境配置
修改第二个服务器端口号为8081
还有shutdown端口和第一台不一致即可
5.2.3 测试
5.2.4 location 指令说明
URL就是一个完整的链接(统一资源定位符)
URI是一个标识,用来区别于其他资源的标识,它并不是一个完整的链接,而是相对地址
该指令用于匹配 URL。 语法如下:
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~*
:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~
:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
重新加载nginx配置文件
六、负载均衡
6.1 实现效果
浏览器地址栏输入地址 http://www.123.com/edu/a.html
,负载均衡效果,平均8080和8081端口中
6.2 环境配置
重新加载该配置文件
6.3 测试
七、动静分离
7.1 实现效果
将静态资源独立存放,由nginx转发静态资源
7.2 环境准备
每次修改过配置文件,都要重新加载配置文件
7.3 测试
八、高可用
8.1 环境准备
部署两台nginx服务器
yum install -y keepalived
[root@nginx-master ~]# rpm -q keepalived
keepalived-1.3.5-19.el7.x86_64
/usr/local/src/nginx_check.sh
keepalived.conf
slave同上,以下为不同点
8.2 测试
访问测试
把master的keepalived和nginx断掉
不断刷新还是能访问nginx页面
九、优秀文章