32位windows下Nginx的簡單使用及配置

    前幾天工做中和前端部門的同窗配合時遇到一個問題:前端同窗調用服務器端接口時,服務器端接口獲取不到cookie。項目是先後端分離,服務器端使用spring mvc提供java接口,前端使用nginx作反向代理解決跨域問題,前端框架使用vue。html

    當時因爲對ngix不太瞭解,只知道前端同窗使用nginx作反向代理時,在測試環境配置的是ip+端口號的方式訪問接口,因而就誤覺得是沒有經過域名訪問接口,因此服務器端接口才獲取不到cookie。還理所固然的找前端同窗「糾正錯誤」,通過一番排查,最終發現問題的罪魁禍首是vue,vue的工做原理是首頁頁面加載和刷新頁面是會經過前端虛擬服務器和後端服務器接口交互,這時是服務器端之間的接口調用,前端同窗沒有在前端服務器向後端服務器接口正確的發送cookie,致使接口獲取不到cookie。前端

    如今想一想真的很汗顏,真是無知者無畏,因此就決定要學一學Nginx。這篇文章就記錄一下個人一個入門實驗,實驗目的:在本機配置一個nginx反向代理服務器,監聽8089端口。達到訪問http://localhost:8089,會經過nginx代理,訪問http://localhost:8080的目的。vue

    環境:32位windows、tomcat 、Spring MVCjava

    前期準備:安裝tomcat,並新建Spring MVC項目,訪問http://localhost:8080/,可以打開Sping MVC項目對應的action,具體作法這裏很少說,詳情請見個人博文:http://www.cnblogs.com/cs-js/p/7295414.htmlnginx

    第一步:安裝Nginxspring

下載連接:https://kevinworthington.com/nginx-for-windows/windows

我本機安裝在了C:\nginx目錄下,安裝完成後,能夠在文件夾裏面看到Strat-nginx和Stop-nginx兩個文件,一個是啓動nginx服務,一個是關閉nginx服務。另外,還能夠看到conf這個文件夾,ngix的配置文件nginx.conf就是放在這個文件夾裏面。配置反向代理服務器只須要在配置文件裏增長几個配置就能夠了。後端

   第二步:配置nginx跨域

打開nginx.conf配置文件,會看到在http節點,在http節點下有一個默認的server子節點,咱們不用去管它,要作的就是在http節點下新增一個server節點,具體的配置以下:tomcat

 	#虛擬主機的配置
     server {
     	#監聽端口
        listen       8090;
        #域名能夠有多個,用空格隔開,代理訪問的真實服務器
        server_name  localhost:8080;

        error_page  404              /404.html;
		
        charset utf-8;

        #後端的Web服務器能夠經過X-Forwarded-For獲取用戶真實IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Server $host;

        #如下是一些反向代理的配置

        #反向代理時候,設置nginx將域名攜帶到tomcat服務器 
		proxy_set_header Host $host; 

		#容許客戶端請求的最大單文件字節數
        client_max_body_size 10m;

		#對 "/" 啓用反向代理 
        location / {
        	 #配置代理訪問的真實uri
             proxy_pass http://localhost:8080;
        }
    }

這樣,就配置了一個簡單的反向代理服務器。是否是很簡單,這裏須要重點解釋一下server節點和它裏面的各個配置項的含義:

server:配置一個虛擬主機,一個server接口能夠監聽一個端口,nginx能夠配置監聽多個端口,作多個反向代理,每一個反向代理都須要配置一個server節點。

listen:監聽的端口,就是訪問的nginx服務器的端口。

server_name:真實服務器的名稱,能夠配成ip+端口或者域名+端口

location:把不一樣方式的請求定位到不一樣的處理方式上,這裏我配置的是「/」,意思就是配置成nginx對"/"這種請求作轉發

proxy_pass:轉發到真實服務器的uri。這裏就是攔截http:localhost:8089/,而後轉發到http://localhost:8080

 

總結,nginx的使用很簡單,只須要簡單的配置就能夠完成高性能的反向代理和負載均衡功能,有興趣的同窗能夠在網上深刻研究一下,而後把好的資源共享一下,個人郵箱5915305@qq.com。

相關文章
相關標籤/搜索