1、nginx 解決端口問題css
1、什麼是nginx?html
nginx 是一個高性能的web和反向代理服務器nginx
2、Web服務器分2類:web
區分:web服務器不能解析jsp等頁面,只能處理js、css、html等靜態資源。ajax
web應用服務器能夠處理動態資源,如servlet 併發:web服務器的併發能力遠高於web應用服務器。json
3、nginx做爲反向代理跨域
代理:經過對客戶機的配置,讓一臺服務器代理客戶機,客戶的全部請求都交給代理服務器來處理瀏覽器
(例如:瀏覽器的代理)tomcat
反向代理:用一臺服務器來代理真實的服務器,用戶訪問時,不在訪問真實的服務器,而是訪問代理安全
服務器
總結:代理 是 代理客戶端
反向代理是代理服務器
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:規範化的跨域請求解決方案,安全可靠
優點:在服務端能夠控制是否容許跨域,能夠自定義規則
支持各類請求方式
缺點:會產生額外的請求
五、CROS解決跨域問題
瀏覽器將ajax請求分爲兩類,其處理方案略有差別:簡單請求,特殊請求
簡單請求
當瀏覽器發起的ajax 請求是簡單請求時,會在請求頭中攜帶一個字段:Origin,
Origin中,會指出當前請求屬於哪一個域(協議+域名+端口)。
服務會根據這個值決定是否容許其跨域。
若是服務器容許跨域,須要在返回的響應頭中攜帶下面信息:
Access-Control-Allow-Origin: http://manage.leyou.com
Access-Control-Allow-Credentials: true
複雜請求
特殊請求會在正式通訊以前,增長一次HTTP查詢請求,稱爲"預檢"請求(preflight)。
瀏覽器先詢問服務器,當前網頁所在的域名是否在服務器的許可名單之中,以及可使用哪些HTTP動詞和頭信息字段。只有獲得確定答覆,瀏覽器纔會發出正式的XMLHttpRequest請求,不然就報錯。