Nginx是什么?
Nginx 是一个高性能的 HTTP 和 反向代理 服务器,也是一 IMAP/POP3/SMTP 代理服务器。
反向代理: 我需要访问我们的Web服务器(Tomcat)中的资源---->我们可以不直接的访问Tomcat服务器----?而是直接访问Nginx服务器–>nginx通过配置可以访问到我们的Tomcat服务器的这种方法就称为反向代理
POP3:邮件的接受协议
SMTP:邮件的传输协议
优点
- Nginx 可以在大多数 UnixLinux OS 上编译运行,并有 Windows 移植版。
- 官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定
- . Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
- 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。
- 无缓存的反向代理加速,简单的负载均衡和容错。
- FastCGI,简单的负载均衡和容错。
- 模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。
- 支持 SSL 和 TLSSNI。
Nginx能干什么?
- 反向代理
- 负载均衡
- 动静分离
- 虚拟主机
Nginx的安装
第一步:下载nginx
第二步:copy这个文件到/usr/local下面
第三步:安装 tar -zxvf nginx-1.6.2.tar.gz
第四步:下载所需要的类库
yum install pcre yum install pcre-devel
yum install zlib yum install zlib-devel
第五步:进行config的配置
cd nginx-1.6.3 && ./configure --prefix=/usr/local/nginx
(注意上面的nginx的版本)
查看是否报错
第六步:在nginx的根目录下去执行 make&&make install
第七步:进入/nginx/sbin目录下
启动
pkill nginx
./nginx启动nginx
查看80端口 netstat -apn | grep 80
Nginx下根目录下目录的解析
conf:配置文件存放的地方
sbin:表示的是启动工具存放的地方
html:表示的是静态资源存放的地方-----像 tomcat(webapps)
log:日志存放的地方
在浏览器上输入 ip地址:80 如果出现了 nginx的欢迎页面说明成功 否则失败
./nginx -s reload :重启这个nginx服务器
nginx的配置
这个是负载均衡的配置:测试方法是用IDEA分别启动192.168.0.114的8001端口和8002端口
请求的测试接口:
@RestController
@RequestMapping("/book")
@CrossOrigin(origins = {"http://192.168.0.114:8088"})
public class BookController {
@RequestMapping("/getbooks")
public List<Book> getbooks() {
System.out.println("收到了请求!!!");
return bs.list();
}
测试结果:
反向代理
#表示的意思是:如果你访问的后缀是.jpg的话那么 你就访问下面设置的机器
location ~ .jpg$ {
proxy_pass http://10.7.151.88:8080;
}
负载均衡
负载均衡默认的访问策略:轮询
upstream xiaobobo {
server 127.0.0.1:8027;
server 127.0.0.1:8028;
server 127.0.0.1:8029;
}
#表示的意思是:如果你访问的后缀是.jpg的话那么 你就访问下面设置的机器
location ~ \.jpg$ {
proxy_pass http://xiaobobo;
}
第二种设置权重
upstream xiaobobo {
server 10.7.151.88:8080 weight=2;
server 10.7.151.103:8080 weight=1;
}
第三种访问策略 ( ip_hash)
upstream xiaobobo {
ip_hash;
server 10.7.151.88:8080;
server 10.7.151.103:8080;
}
虚拟主机
server {
listen 9999;
server_name localhost;
location / {
root bobo;
index bobo.html;
}
(学习Nginx其实就是学习它的配置文件)