對于nginx 域名,有些朋友還是比較熟悉的,但是對于nginx 域名 代理轉發(fā)的情況還不太了解,那么nginx 域名 代理轉發(fā)能解決什么問題?nginx詳細配置教程是怎樣的呢?下面就給大家具體介紹下。
nginx 域名 代理轉發(fā)能夠解決什么問題?
nginx 域名 代理轉發(fā)能夠解決跨域問題。具體為:
有兩個服務(或多個服務),各服務通過redis做session共享以實現(xiàn)單點登錄。其中登錄走的是api服務,前端通過cookie來維持登錄狀態(tài)。在api服務登錄之后,在所有服務中這個用戶(token)都是登錄是登錄狀態(tài)的。
因為登錄走的是api服務,那么cookie的作用域是api.guitu18.com,這時候訪問web項目,web后臺雖然知道這個用戶(token)是登錄的,但因為請求是從web.guitu18.com域發(fā)起的,web服務是無法獲取api.guitu18.com域下的cookie的。
提升cookie作用域
那么現(xiàn)在需要解決跨域問題,因為是同一頂級域下的服務,我們之前的做法是將cookie作用域提升到頂級域下,這時候二級域是能夠獲取到頂級域下的cookie的(cookie作用域是向下兼容),那web服務也就能夠拿到這個用戶的token識別登錄狀態(tài)了。
服務端代理
現(xiàn)在升級為nginx代理來解決跨域問題,方式是通過對接口路徑前綴進行匹配來實現(xiàn)。約定api服務中所有的接口路徑以api開頭,web服務在請求api服務時不用指向api域名,而是指向自身域名https://web.guitu18.com,然后在nginx中對web域下以api開頭的路徑進行代理,轉發(fā)到api服務。
nginx怎么反向代理域名
先說正向代理吧:正向代理就是通過vpn或其他轉發(fā)客戶端請求,比如你開游戲加速器這樣,請求是通過別人機器發(fā)送給服務器的,服務主體是客戶端
反向代理就相反,是代理服務器的。是針對服務器收到和響應的信息進行轉發(fā)。好處是代理服務器和服務器對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器ip。常用的一般是nginx代理,免費并且性能穩(wěn)定。
配置監(jiān)聽ip
listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [deferred] [accept_filter=filter] [bind] [ssl];
配置監(jiān)聽端口port
listen port[default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [ssl];
配置 unix domain socket
listen unix:path [default_server] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ssl];
下面給個實例:
比如想通過nginx代理一下tomcat服務,使用nginx配置的虛擬主機地址來訪問,修改配置文件nginx.conf
server { listen 8089; server_name 1.1.1.1:7777;
location / { # tomcat首頁;
proxy_pass http://localhost:8080; # tomcat路由)
} };
保存退出后重啟nginx,還有更多參數(shù)請參考手冊。
nginx詳細配置教程
訪問nginx,確保nginx已經(jīng)成功安裝。
通過端口區(qū)分不同的主機:nginx配置文件nginx.conf,位置:/usr/local/nginx/conf/。通過配置多個server,實現(xiàn)多個虛擬機的配置。
復制原來的html目錄將其更名為html-81,以進行測試。
為便于區(qū)分,對index.html文件進行修改。修改完成后刷新。
再分別訪問兩臺服務器
多個域名區(qū)分主機:修改配置文件。
ngix的正向代理功能
ngix的反向代理功能。
通過以上的內(nèi)容,我們已經(jīng)了解了nginx 域名 代理轉發(fā)能夠解決的問題了,大家在做nginx 域名 代理轉發(fā)的時候,就可以按照上面的方法去做,如有疑問,可以咨詢我們。