Nginx介绍
Nginx是一个高性能的Http和反向代理Web服务器,也提供了IMAP/POP3/SMTP服务。占内存小,可以实现高并发连接、处理响应快。
Nginx应用
1、Http服务器。nginx是一个Http服务可以独立提供Http服务,也可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。
3、反向代理,负载均衡。
4、配置安全管理,比如可以使用nginx搭建API接口网关,对每个接口服务进行拦截。
反向代理
1、修改本地hosts文件,相当于域名服务器。
127.0.0.1 www.feigege.com
2、修改nginx.conf配置文件
#server作用:内部创建的服务器
server {
#服务器监听端口
listen 80;
#配置拦截的域名
server_name www.feigege.com;
#对所有的请求做负载均衡+反向代理
location / {
#代理
proxy_pass http://127.0.0.1:8080;
#默认页面
index index.html index.htm index.jsp;
#拦截域名后:跳转的路径
root /usr/local/tomcat/webapps/myproject/WEB-INF/page
}
}
3、访问www.feigege.com
负载均衡
负载均衡,英文名称为Load Balance,其意思就是把请求,分摊到多个操作单元上进行执行。
1、轮询负载
upstream myserverteam{
#配置节点服务
server 127.0.0.1:8080;
server 127.0.0.1:8080;
}
server {
listen 80;
server_name www.feigege.com;
location / {
proxy_pass http://myserverteam;
index index.html index.htm index.jsp;
#设置连接超时时,一旦超时,就认为节点宕机了。
proxy_connect_timeout 60;
}
}
2、权重负载
upstream myserverteam{
#配置节点服务,两节点接收到的请求比例1:3
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8080 weight=3;
}
3、IP绑定:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8080;
}
Nginx跨域
新建一个server,配置数据。
server {
listen 80;
server_name www.feigege.com;
location /A {
proxy_pass http://myprojectOne.com:8081;
index index.html index.htm;
}
location /B {
proxy_pass http:/myprojectTwo.com:80821;
index index.html index.htm;
}
}
这样配置,两个项目A、B在浏览器上是用的共同的域名,在A项目中请求B项目资源,浏览器就会放行了。
Nginx防盗链
#~表示拦截一切请求,
location ~ .*.(jpg|jpeg|JPG|png|gif|icon)$ {
#验证域名
valid_referers blocked http://www.itmayiedu.com www.itmayiedu.com;
#验证未通过,返回403页面
if ($invalid_referer) {
return 403;
}
#缓存过期时间30天
expires 30d;
#是否记录访问日志
access_log off;
}
Nginx配置DDOS
#每两秒钟接收一个客户端IP的请求(大约等同于每分钟30个请求)
limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
server {
location /login.html {
limit_req zone=one;
}
}