筆者在國外租了一個虛機,用來部署本身的博客應用,並申請了一個域名51think.net來指向這個虛機。隨着部署的應用愈來愈多,而80端口只有一個,沒法直接經過域名去訪問不一樣的應用。由此而來,部署一個代理服務器勢在必行。本文對nginx的安裝和配置進行簡單整理,但願對初學者有幫助。
本文來源於個人博客網站:www.51think.netnginx
nginx安裝有兩種方式,即yum和wget。json
須要注意的一點是,nginx並不在yum的安裝源中。什麼是yum?你能夠理解爲一個rpm包管理器的前置(什麼是rpm?本身百度吧。。),yum相似於maven的效果,給一個包名,就能將其所依賴的軟件包所有下載下來。maven是有中央倉庫的,即包的來源。yum也是一樣的概念,它也須要一個包源,並且能夠配置多個,這個源能夠是本地的也能夠是網絡的,而nginx並不在它的源中,所以咱們要把它加到yum的源中。執行以下命令:centos
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
這個操做並非安裝nginx,只是安裝了一個nginx的源。執行完成以後,會在/etc/yum.repos.d目錄中看到多了一個文件nginx.repo 。瀏覽器
從這個文件的後綴咱們能夠感知到,.repo即repository,倉庫配置。文件內容以下:tomcat
核心要素也就是一個網址。即告知yum命令,能夠從這個網址裏找nginx下載並安裝。服務器
如今開始真正的安裝,執行命令yum install -y nginx
便可。網絡
wget http://nginx.org/download/nginx-1.10.1.tar.gz
解壓tar -zxvf nginx-1.10.1.tar.gz
,我本地的解壓縮目錄是/usr/local/,這時候咱們能夠啓動一下nginx觀察一下效果,到/usr/local/nginx/sbin目錄,執行./nginx,而後在瀏覽器中訪問http://localhost ,彈出如下頁面則表示安裝成功(確保80端口沒有被佔用):負載均衡
在虛機上找到nginx的安裝目錄,找到nginx.conf文件。筆者的文件路徑是:maven
/usr/local/nginx/conf/nginx.conf
這個配置文件的內容很簡單,結構相似於json,重點關注server領域的配置,其餘配置項默認便可。筆者的配置以下,供參考:網站
server { listen 80; server_name www.51think.net 51think.net www.ueasy.cc; #charset koi8-r; #access_log logs/host.access.log main; #blog location / { proxy_pass http://138.128.193.108:8080; } #mall location /wx { proxy_pass http://138.128.193.108:8081; } }
listen表示監聽的端口,http的是80,https的是443。server_name表示本配置項是爲哪些域名準備的,便可以接受哪些域名的訪問。location就是代理的配置了,/表示能夠經過域名的根目錄去訪問http://138.128.193.108:8080的tomcat服務,/wx表示能夠經過「域名+/wx」的形式去訪問http://138.128.193.108:8081的tomcat服務。要注意的一點是,若是location做爲tomcat服務的全局入口,那麼location的路徑須要和tomcat的contextPath保持一致,不然訪問可能出現404錯誤。舉例說明,若是個人博客網站tomcat的contextPath是/blog,即直接訪問路徑應該是http://138.128.193.108:8080/blog。若是在nginx層面將location配置成以下:
location / { proxy_pass http://138.128.193.108:8080; }
則經過域名http://51think.net/這樣訪問時,將會被代理到http://138.128.193.108:8080/這個訪問路徑,顯然這樣是訪問不通的。若是tomcat的contextPath是/則沒問題。
負載均衡配置也比較簡單,將上文location配置中的 IP+端口換成一個新的配置項,而後在新的配置項里加入咱們要負載的節點和負載的策略。
location / { #將ip和端口信息換成一個新的配置項manyserver(自由命名) proxy_pass http://manyserver; }
配置manyserver:
upstream manyserver{ server 138.128.193.108:8080; #tomcat server 138.128.193.108:8084; #tomcat server 138.128.193.108:8085; #tomcat }
upstream manyserver配置項裏,咱們還能夠制定負載均衡策略,好比iphash,權重,輪詢等,在此再也不贅述。
以上就是nginx安裝配置的所有內容,但願對初學者有所幫助。
一、nginx.conf中能夠配置多個server節點,nginx能夠根據監聽端口或者訪問域名去定位到不一樣的server配置項。二、配置完成以後,記得要重啓nginx。到nginx的安裝目錄/usr/local/nginx/sbin/,執行./nginx -s reload便可。