nginx.md
nginx
1.什么是 nginx?
nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。
2.反向代理
(1)正向代理
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问
(2) 反向代理
反向代理,其实客户端对代理是无知的,因为客户端不需要要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址
3.负载均衡
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器。
4.动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力
5.nginx安装
1.使用远程工具连接linux操作系统
2.安装pcre依赖并解压文件
(1) 执行./configure
./configure
(2).执行make && make install命令
make && make install
(3)查看pcre是否安装成功
pcre-config --version
3.安装其他依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
4.安装nginx
(1)解压缩nginx-xx.tar.gz 包
(2)进入解压缩目录,执行./configure
./configure
(3)执行make && make install命令
make && make install
-
安装成功之后,在usr多出来一个文件夹local/nginx,在nginx有sbin有启动脚本
-
查看开放的端口号
firewall-cmd --list-all
-
设置开放的端口号
firewall-cmd --add-service=http -permanent sudo firewall-cmd --add-port=80/tcp --permanent
然后需要重启防火墙
firewall-cmd --reload
5. nginx操作的常用命令
1.使用nginx操作命令前提条件:必须进入nginx目录 /usr/local/nginx/sbin
2..查看nginx版本号
./nginx -v
3.启动nginx
./nginx
4.关闭nginx
./nginx -s stop
5.重新加载nginx
./nginx -s reload
6. nginx配置文件
- nginx配置文件位置
/usr/local/nginx/conf/nginx.conf
2.nginx配置文件有三部分组成
2.1第一部分 全局块
从配置文件开始到events 块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令
比如 work_processes 1 work_processes值越大,可以支持的并发处理量也越多
2.2 第二部分 events块
events 块涉及的指令主要影响Nginx 服务器与用户的网络连接
比如 work_connections 1024; 支持最大连接数
2.3第三部分 http 全局块
http全局块配置的指令包括文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等。
7. Nginx实例1反向代理
-
实现效果,打开浏览器,在浏览器地址栏输入www.123.com,跳转到linux系统tomcat主页面中
-
访问过程
-
具体配置
-
在windows系统C:\Windows\System32\drivers\etc下的host配置文件中添加
192.168.200.137 www.123.com (192.168.200.138 是虚拟机的ip地址)
-
修改nginx/conf/nginx.conf
server { listen 80; server_name www.123.com; #charset koi8-r; #access_log logs/host.access.log main; location / { #root html; # index index.html index.htm; proxy_pass http://192.168.200.138:8080; # proxy_pass http://localhost:8080; } }
-
重启nginx
./nginx -s stop ./nginx
即可访问
-
8.Nginx 配置实例-负载均衡
1.实现效果
(1) 浏览器地址输入地址http://192.168.200.138/edu/a.html ,负载均衡效果,平均8080和8081端口中
2.准备工作
(1) 准备两台tomcat 服务器,一台8080,一台8081
(2) 在两台tomcat 里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面a.html,用于测试
3.在nginx的配置文件中进行负载均衡的配置
-
nginx分配策略
(1)轮询(默认)
每个请求按照时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
(2) weight
weight代表权重,默认为1,权重越高被分配的客户端越多
upstream backserver { server 192.168.0.14 weight=8; server 192.168.0.15 weight=10; }
(3) ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session问题
upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
(4) fair
按后端服务器的响应时间来分配请求,响应时间短优先分配
upstream backserver { server server1; server server2; fair; }
9.nginx 配置实例-动静分离
1.什么是动静分离?
nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,tomcat处理动态页面。
2.准备工作
1.在根目录新建data文件夹,在data文件夹中新建一个www文件夹和image文件夹,在www文件夹中放了一个a.html,image文件夹中存放了一个图片。
3.修改配置
4.最终测试
(1)浏览器输入地址