day55 nginx和品牌管理

怎甘沉沦 提交于 2020-02-29 09:48:00

一、nginx 解决端口问题

1、什么是nginx?

nginx 是一个高性能的web和反向代理服务器

 

 

2Web服务器分2类:

  • web应用服务器,如:
  • tomcat
  • resin
  • jetty
  • web服务器,如:
  • Apache 服务器
  • Nginx
  • IIS

区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。

web应用服务器可以处理动态资源,如servlet 并发:web服务器的并发能力远高于web应用服务器。

 

 

3nginx作为反向代理

代理:通过对客户机的配置,让一台服务器代理客户机,客户的所有请求都交给代理服务器来处理

(例如:浏览器的代理)

反向代理:用一台服务器来代理真实的服务器,用户访问时,不在访问真实的服务器,而是访问代理

服务器

 

总结:代理 是 代理客户端

反向代理是代理服务器

 

nginx 反向代理的配置

 

 

模板:

server {

listen 80;

server_name manage.leyou.com;

 

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

location / {

proxy_pass http://127.0.0.1:9001;

proxy_connect_timeout 600;

proxy_read_timeout 600;

}

}

 

 

4、跨域问题

4.1 什么是跨域

域名不同

域名相同,端口不同

二级域名不同 item.jd.com (二级域名.一级域名.顶级域名)

 

如果域名和端口相同,但是请求的路径不同,则不属于跨域

 

 

4.2 为什么有跨域问题

跨域不一定会有跨域问题。

因为跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是与当前页域名相同的路径,这能有效的阻止跨站攻击。

 

因此:跨域问题是针对ajax的一种限制

 

 

4.3 跨域问题的解决办法

1)jsonp :最早的解决办法,利用script标签可以跨域的原理实现

限制:只能发起get请求

 

2)CORS:规范化的跨域请求解决方案,安全可靠

优势:在服务端可以控制是否允许跨域,可以自定义规则

支持各种请求方式

缺点:会产生额外的请求

 

5、CROS解决跨域问题

浏览器将ajax请求分为两类,其处理方案略有差异:简单请求,特殊请求

 

简单请求

当浏览器发起的ajax 请求是简单请求时,会在请求头中携带一个字段:Origin,

Origin中,会指出当前请求属于哪个域(协议+域名+端口)。

服务会根据这个值决定是否允许其跨域。

如果服务器允许跨域,需要在返回的响应头中携带下面信息:

Access-Control-Allow-Origin: http://manage.leyou.com

Access-Control-Allow-Credentials: true

 

 

复杂请求

特殊请求会在正式通信之前,增加一次HTTP查询请求,称为"预检"请求(preflight)。

浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!