Nginx快速入门

C写的轻量级服务器

1. 应用场景

1.反向代理 客户端发送请求达到Nginx服务器,Nginx转发到真实服务器访问,从而保证真实服务安全性;

2.负载均衡 能够对集群的节点实现负载均衡和故障转移,负载均衡算法:(轮询、权重、随机、hash等);

3.微服务网关入口 ,可以对微服务网关实现集群;

4.静态服务器 比Tomcat性能高很多,可以存放静态资源;-----推荐以后将静态资源存放到CDN;

5.保护网站 使用nginx+lua 实现对请求实现服务限流;


2. 安装方式

1.windows 安装nginx

2.linux 安装nginx(纯原生方式非常麻烦)提前下载很多依赖 10分钟---不推荐

3.使用docker安装nginx 1分钟

4.使用宝塔可视化界面安装nginx 5s

一共四种方法,在Windows上下载解压好后,运行nginx.exe文件启动服务器


3. Nginx部署静态资源

Nginx相关配置

1.在C:\Windows\System32\drivers\etc host文件中配置

127.0.0.1 member.lzx.com
127.0.0.1 order.lzx.com

2.Nginx中的server_name指令主要用于配置基于名称的虚拟主机,server_name指令在接到请求后的匹配顺序

例如:访问member.lzx.com 会从html/member 目录中查找静态资源

	server {
        listen       80;
        server_name  member.lzx.com;
        location / {
            root   html/member;
            index  index.html index.htm;
        }
    }
	server {
        listen       80;
        server_name  order.lzx.com;
        location / {
            root   html/order;
            index  index.html index.htm;
        }
    }

4. 基于Nginx正向代理/反向代理

正向代理:VPN,在客户端和服务器中间加一个Nginx然后通过Nginx将客户端的请求转发到服务器。正向代理隐藏用户的真实行为。

反向代理:客户端请求达到Nginx代理服务器 在通过代理服务器转发到真实服务器 隐藏服务器端真实的IP信息。在同一个域下。


5. 负载均衡策略

1. 轮询策略(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2. 指定权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3. IP绑定 ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4. fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。

5. url_hash(第三方):

轮询配置:

	###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮询机制
    upstream  backServer{
	    server 127.0.0.1:8080;
	    server 127.0.0.1:8081;
	}
	server {
        listen       80;
        server_name  upstream.mayikt.com;
        location / {
		    ### 指定上游服务器负载均衡服务器
		    proxy_pass http://backServer;
            index  index.html index.htm;
        }
    }

6. Nginx Location指令详解

通过指定模式来与客户端请求的URI相匹配,基本语法如下:

location [=|~|~*|^~|@] pattern{……}

1、没有修饰符 表示:必须以指定模式开始,如:

server {
  server_name www.mayikt.com;
  location /member {
      proxy_pass   http://127.0.0.1:8080/;
      index  index.html index.htm;
  }
}
访问http://member.mayikt.com/member 反向代理:http://127.0.0.1:8080/
那么,如下是对的:
http://member.mayikt.com/member
http://member.mayikt.com/member?p1
http://member.mayikt.com/member/
http://member.mayikt.com/Member

注意 proxy_pass http://127.0.0.1:8080/; 后面需要加上 / 反向代理到http://127.0.0.1:8080 不需要

加上location匹配的值。

2、=表示:必须与指定的模式精确匹配

server {
  server_name www.mayikt.com;
  location = /member {
      proxy_pass   http://127.0.0.1:8080/;
      index  index.html index.htm;
  }
}
访问http://www.mayikt.com/member 反向代理:http://127.0.0.1:8080
那么,如下是对的:
http://www.mayikt.com/member
http://www.mayikt.com/member?p1
如下是错误:
http://www.mayikt.com/member/
http://www.mayikt.com/memberabc

3、~ 表示:指定的正则表达式要区分大小写

server {
  server_name www.mayikt.com;
  location ~ ^/member$ {
      proxy_pass   http://127.0.0.1:8080;
      index  index.html index.htm;
  }
}
访问http://www.mayikt.com/member 反向代理:http://127.0.0.1:8080
那么,如下是对的:
http://www.mayikt.com/member
http://www.mayikt.com/member?p1
如下是错误:
http://www.mayikt.com/Member/
http://www.mayikt.com/memberabc

4.~* 表示:指定的正则表达式不区分大小写

server {
  server_name www.mayikt.com;
  location ~* ^/member$ {
      proxy_pass   http://127.0.0.1:8080;
      index  index.html index.htm;
  }
}
访问http://www.mayikt.com/member 反向代理:http://127.0.0.1:8080
那么,如下是对的:
http://www.mayikt.com/member
http://www.mayikt.com/member?p1
http://www.mayikt.com/Member
如下是错误:
http://www.mayikt.com/member/
http://www.mayikt.com/memberabc

1:带有“=“的精确匹配优先

2:没有修饰符的精确匹配

3:正则表达式按照他们在配置文件中定义的顺序

4:带有“^~”修饰符的,开头匹配

5:带有“~” 或“~*” 修饰符的,如果正则表达式与URI匹配

6:没有修饰符的,如果指定字符串与URI开头匹配


7. 基于Nginx解决跨域问题

 

1.项目响应头设置允许跨域权限 response.setHeader("Access-Control-Allow-Origin", "*"); 适合于小公司

2.使用jsonp解决网站跨域问题 缺点:只能支持Get请求 模拟脚本提交。

3.使用Nginx搭建API网关保持域名和端口一致 Location

4.使用微服务中的网关

5.HttpClient实现转发 缺点:重复发送两次请求

解决跨域问题核心思想:

页面访问的地址与ajax请求 域名、端口 协议 需要一致。

在响应头中 响应 允许浏览器端跨域

resp.setHeader("Access-Control-Allow-Origin", "*");

java项目 aop 拦截器 过滤器 、网关、nginx中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
nginx是一个高性能的开源Web服务器软件,它可以作为反向代理服务器、负载均衡器和HTTP缓存服务器等多种用途。对于初学者,可以通过阅读《nginx 快速入门》这本PDF来学习nginx的基本知识和使用方法。 《nginx 快速入门》这本PDF提供了全面而详细的关于nginx的介绍和使用指南。首先,它简要介绍了nginx的历史、特点和优势,帮助读者对nginx有一个整体的了解。然后,它详细介绍了nginx的安装和配置过程,包括如何在不同操作系统上安装nginx、如何配置nginx的基本选项和参数等。 除了安装和配置,这本PDF还介绍了nginx的核心功能和常用模块的使用方法。例如,它详细介绍了如何配置nginx作为反向代理服务器,将客户端的请求转发到后端的应用服务器;如何配置nginx作为负载均衡器,实现请求的分发和负载均衡;以及如何配置nginx作为HTTP缓存服务器,提高Web应用的性能等。 此外,这本PDF还介绍了nginx的安全性和高可用性相关的内容,例如如何配置SSL证书进行HTTPS加密传输、如何配置基于HTTP Basic Authentication的访问控制、如何配置nginx实现故障转移和负载均衡等。 总之,《nginx 快速入门》这本PDF是一本适合初学者快速入门nginx的指南。通过阅读这本PDF,读者可以了解nginx的基本概念和使用方法,并能够配置和管理一个基本的nginx服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay/.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值