一 Nginx概述
1:实际开发遇到的问题
一个服务器支撑不了高并发,需要对服务器进行集群
2:Nginx概述
nginx常做静态内容服务和代理服务,tomcat主要做应用服务器
一个http服务器,高性能http服务器及反向代理服务器。支撑10万并发量,cpu,内存等资源消耗低,运行稳定
3应用场景
1.http服务器,常做网页静态服务器
2.虚拟主机,可以实现一台服务器虚拟出多个网站。
基于端口的,不同端口
基于域名的,不同域名
3.反向代理,负载均衡。
二 安装
1.下载nginx,http://nginx.org/en/download.html,
nginx-1.16.1 pgp |
2.准备 环境,linux centos 7.
执行命令
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
3. 解压 tar -zxvf nginx-1.16.1.tar
4. cd nginx-1.16.1
执行 命令, --prefix 指定安装目录
./configure --prefix=/usr/local/nginx
5. 编译,安装
make
make install
6.cd /usr/local/nginx/sbin 启动 nginx
./nginx
指定配置文件启动命令: nginx -c /usr/local/nginx/conf/nginx.conf
快速停止或关闭Nginx:nginx -s stop
正常停止或关闭Nginx:nginx -s quit
配置文件修改重装载命令:nginx -s reload
7. 访问 http://ip:80 (可能需要关闭防火墙,或打开80端口)
三 配置文件
conf/nginx.conf
代表网络请求
http{
#一个nginx可以配置多个server,端口号不同或则主机不同
server{
listen 80; 端口配置
server_name localhost;
location / { 匹配路径
root html; 访问的根目录(html,与conf目录同级)
index index.html; 默认首页
}
}
server{
listen 89; 端口配置
server_name localhost;
location / { 匹配路径
root html; 访问的根目录(html,与conf目录同级)
index index.html; 默认首页
}
}
server{
listen 89; 端口配置
server_name localhost2; //根据域名不同,访问相同端口,不同域名,如果使用本地虚拟机部署,
//需要修改windows的hosts文件,映射域名和ip地址映射
location / { 匹配路径
root html; 访问的根目录(html,与conf目录同级)
index index.html; 默认首页
}
}
}
四 :配置负载均衡
A想向C借钱,C不认识A,A通过B向C借钱。C不知道钱借给了谁,隐藏了真实的客户端
反向代理,A不知道谁借钱给他,反向代理服务器隐藏了真实的服务端
算法
1轮询 (默认使用)
2权重,用于服务器性能不均的情况
3ip_Hash :根据请求的ip的hash结果路由,今后同一ip只会访问同一tomcat
配置负载均衡( conf/nginx.conf)
http{
upstream www.car.com{
server 192.168.82.129:8080 weight=2;
server 192.168.82.130:8080 weight=1;
ip_hash;// ip_hash+权重有意义
}
server {
listen 80;
server_name localhost;
location /{
proxy_pass http://www.car.com/; //指定upstream
}
}
}
访问:可以直接访问 http://localhost:80/, 或者 http://www.car.com/ ,结尾加 /,详见匹配路径
五:动静分离配置
前后端分离,后端提供数据接口,前端提供页面 (ajax)
指将 静态资源如 js,css,jpg等资源和动态资源如jsp分离开,提高服务器响应速度,提高性能
配置文件:
server {
location ~*\.(css|js|html)${ #以 .css,.js后缀结尾
root resources ; # 可以使用绝对路径,相对路径和conf同级 ,放置静态资源的目录(html,js,css)
index index.html;
expires 7d; #有效天数,本地缓存
}
}