nginx實戰教程

大綱

  爲了讓大家更快的學會,該博客中的內容錄製成了視頻課程:馬上在線學習

  

1.什麼是nginx

  

  Nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。

  由俄羅斯的程序設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬併發鏈接(tomcat 500),並且cpu、內存等資源消耗卻非常低,運行非常穩定。

2.應用場景

  1、http服務器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態服務器。

  2、虛擬主機。可以實現在一臺服務器虛擬出多個網站。例如個人網站使用的虛擬主機。

  3、反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集羣可以使用nginx做反向代理。

並且多臺服務器可以平均分擔負載,不會因爲某臺服務器負載高宕機而某臺服務器閒置的情況。

3.nginx安裝\啓動\訪問

3.1.安裝環境準備 

  需要安裝gcc的環境(就如同tomcat要運行需要jdk環境一樣)

  gcc環境安裝

  sudo apt-get update

  

  sudo apt-get install gcc

  

  安裝完了可以執行
  gcc --v
  的命令來查看版本,輸出如下:

    

  安裝Nginx時需要先安裝依賴包

  首先使用dpkg命令查看自己需要的軟件是否安裝。

  例如查看zlib是否安裝:

  root@ubuntu:/usr/java/nginx-1.8.0# dpkg -l | grep zlib

  

  解決依賴包openssl安裝,命令:

  sudo apt-get install openssl libssl-dev

  解決依賴包pcre安裝,命令:

  sudo apt-get install libpcre3 libpcre3-dev

  解決依賴包zlib安裝,命令:

  sudo apt-get install zlib1g-dev

3.2.安裝步驟

  下載nginx

  官方網站:

      http://nginx.org/

  使用的版本是1.8.0版本。

  

第一步:把nginx-1.8.0.tar.gz上傳到linux系統
第二步:解壓縮
[root@localhost ~]# tar zxf nginx-1.8.0.tar.gz 
第三步:使用configure命令創建一makeFile文件。
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:啓動nginx之前,上邊將臨時文件目錄指定爲/var/temp/nginx,需要在/var下創建temp及nginx目錄
[root@localhost sbin]# mkdir /var/temp/nginx/client -p
第四步:make
第五步:make install

  

3.3.啓動

  進入sbin目錄

  root@ubuntu:/usr/local/nginx/sbin# ./nginx

  檢查是否啓動:

  

關閉方式一:nginx:
root@ubuntu:/usr/local/nginx/sbin# ./nginx -s stop
關閉方式二:
root@ubuntu:/usr/local/nginx/sbin# ./nginx -s quit
重啓nginx:
1、先關閉後啓動。
2、刷新配置文件:
root@ubuntu:/usr/local/nginx/sbin# ./nginx -s reload

3.4.訪問 

  192.168.25.106:80

  默認是80端口。

  注意:是否關閉防火牆。

  

4.配置虛擬主機 

  就是在一臺服務器啓動多個網站。

  如何區分不同的網站:

  1、域名不同

  2、端口不同

4.1.通過端口區分不同虛擬主機  

  Nginx的配置文件:

  /usr/local/nginx/conf/nginx.conf

  

  可以配置多個server,配置了多個虛擬主機。

  複製一個目錄: root@ubuntu:/usr/local/nginx# cp html/  html81 -r

  添加虛擬主機:

 #測試使用81端口,對應的根文件爲:html81
    server {
        listen       81;
        server_name  localhost;
        location / {
            root   html81;
            index  index.html index.htm;
        }
    }

 

  重新啓動服務器

  root@ubuntu:/usr/local/nginx/sbin# ./nginx -s stop

  root@ubuntu:/usr/local/nginx/sbin# ./nginx

  分別訪問80端口和81端口

  192.168.25.106:80

  192.168.25.106:81

4.2.通過域名區分不通虛擬主機

  域名就是網站。

      www.baidu.com

  Dns服務器:把域名解析爲ip地址。保存的就是域名和ip的映射關係。

  一級域名:

  Baidu.com

  二級域名:

  Item.baidu.com

  三級域名:

  1.Image.baidu.com

  一個域名對應一個ip地址,一個ip地址可以被多個域名綁定。

  本地測試可以修改hosts文件。

  修改windowhosts文件:(C:\Windows\System32\drivers\etc

  可以配置域名和ip的映射關係,如果hosts文件中配置了域名和ip的對應關係,不需要走dns服務器。

  下載小工具:https://pc.qq.com/search.html#!keyword=SwitchHosts

  

4.3.nginx的域名配置

  複製taobao目錄: root@ubuntu:/usr/local/nginx# cp html/  html-taobao  -r

  複製wfd360目錄: root@ubuntu:/usr/local/nginx# cp html/  html-wfd360  -r

  添加如下兩個節點

#測試使用都是用域名配置的80端口  www.taobao.com
server {
        listen       80;
        server_name  www.taobao.com;
        location / {
            root   html-taobao;
            index  index.html index.htm;
        }
    }
#測試使用都是用域名配置的80端口  www.wfd360.com
server {
        listen       80;
        server_name  www.wfd360.com;
        location / {
            root   html-wfd360;
            index  index.html index.htm;
        }
    }

  域名的配置:

  192.168.25.128  www.taobao.com

  192.168.25.128  www.wfd360.com

5.反向代理

5.1.什麼是反向代理

  正向代理

  正向代理類似一個跳板機,代理訪問外部資源。

  

  舉個例子:

  我是一個用戶,我訪問不了某網站,但是我能訪問一個代理服務器,這個代理服務器呢,他能訪問那個我不能訪問的網站,於是我先連上代理服務器,告訴他我需要那個無法訪問網站的內容,代理服務器去取回來,然後返回給我。從網站的角度,只在代理服務器來取內容的時候有一次記錄,有時候並不知道是用戶的請求,也隱藏了用戶的資料,這取決於代理告不告訴網站。

  反向代理(Reverse Proxy)

實際運行方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個服務器。

  

   

5.2.nginx實現反向代理

  需求:

  兩個域名指向同一臺nginx服務器,用戶訪問不同的域名顯示不同的網頁內容。

  兩個域名是www.wfd360.comwww.wfd361.com

  nginx服務器使用虛擬機192.168.25.106

 

  第一步:安裝兩個tomcat,分別運行在81808280端口。

  

   修改首頁,便於區分

  第二步:啓動兩個tomcat

  第三步:反向代理服務器的配置

#反向代理服務器的配置
upstream tomcat2 {
    server 192.168.25.106:8280;
              
              }
    server {
        listen       80;
        server_name  www.wfd362.com;
        location / {
              # root   html-wfd360;
            proxy_pass   http://tomcat2;
            index  index.html index.htm;
        }
    }
    upstream tomcat1 {
    server 192.168.25.106:8180;
    }
    server {
        listen       80;
        server_name  www.wfd361.com;
        location / {
            proxy_pass   http://tomcat1;
            index  index.html index.htm;
        }
    }

  第四步:nginx重新加載配置文件

  第五步:配置域名

  在hosts文件中添加域名和ip的映射關係

  192.168.25.106  www.wfd360.com

  192.168.25.106  www.wfd361.com

  第六步:訪問測試

5.3.負載均衡

  如果一個服務由多條服務器提供,需要把負載分配到不同的服務器處理,需要負載均衡。

upstream tomcat2 {
    server 192.168.25.106:8180;
    server 192.168.25.106:8280;
  }

  可以根據服務器的實際情況調整服務器權重。權重越高分配的請求越多,權重越低,請求越少。默認是都是1

 upstream tomcat2 {
server 192.168.25.106:8180;
    server 192.168.25.106:8280 weight=2;
    }

6.課程資料

1.nginx中文手冊:https://www.nginx.cn/nginx-how-to

2.爲了讓大家更快的學會,該博客中的內容錄製成了視頻課程:馬上在線學習

 完美!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章