Nginx作爲web服務器的安裝配置

Nginx作爲web服務器的安裝配置

(關注官方網站http://nginx.org/

 

Nginx簡介

是一個高性能的 HTTP  反向代理服務器,由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler使用。其特性是:1.模塊化設計,較好的擴展性(不支持動態裝卸載機制)     2.較好的高可靠性3.低內存消耗(一個線程響應多個請求) 4.支持熱部署(不停機二更新配置文件、日誌文件的滾動、也包括升級程序版本)  5.支持時間驅動機制、異步IOAIO)、內存映射機制(mmap)。

Nginx具有獨特的工作模式,它基於非阻塞、事件驅動機制由一個master進程生成多個worker線程,每個worker響應n個請求,基於這種模式,nginx的併發能力在國內外享有很高的評價,特別是響應靜態資源的能力尤其突出,是一款強大的HTTP和反向代理服務器。

 

實驗準備:

yum:epel

源碼包:nginx-1.6.2.tar.gz

本機IP192.168.3.136

 

實驗步驟:


一、nginx的編譯安裝

安裝開發環境和pcre-devel包,以及添加nginx組和nginx用戶

#yum groupinstall "Development Tools""Server Platform Development" –y
# yum install pcre-devel –y
# groupadd -r nginx
# useradd -r -g nginx nginx

1.    解壓nginx安裝包至本地目錄,然後執行編譯、安裝

# tar -xf nginx-1.6.2.tar.gz 
#cd nginx-1.6.2
#./configure --prefix=/usr/local/nginx--conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx--error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock--with-http_ssl_module --with-http_stub_status_module--with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module--http-client-body-temp-path=/var/tmp/nginx/client--http-proxy-temp-path=/var/tmp/nginx/proxy--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
              #make && make install
#mkdir -pv/var/tmp/nginx/{client,proxy,fastcgi,uwsgi}

2.    啓動nginx,並確保80端口已經監聽

# ss -tnl | grep 80 保證80端口此時沒被監聽
# /usr/local/nginx/sbin/nginx
#ss -tnl | grep 80
LISTEN    0   128      *:80                    *:*


到此nginx的編譯安裝就已經成功完成了,在瀏覽器中輸入:192.168.3.136,進行測試訪問,就出現nginx的的歡迎頁面。

                            wKioL1YE792QKhBFAAEei13GohQ698.jpg

 

二、基於端口的虛擬主機的配置

1.    在上面的基礎上,編輯配置文件,添加虛擬主機sever{}

#vim /etc/nginx/nginx.conf
……在最http{}裏面添加如下內容….
server{  #定義一個虛擬主機
        listen       8080; #指明監聽的端口爲8080
        server_name  www.vega.ict; #指明服務器的名字
        root "/vhosts/web1/";  #指明主頁面文檔的根目錄
    }

                                                     

2.    創建虛擬主機頁面目錄,並準備主頁面文件

# mkdir /vhosts/web1 –pv
# cd /vhosts/web1/
# vim index.html
…..添加如下內容…..
<h1>page web1(nginx)</h1>

3.重新載入配置文件

# /usr/local/nginx/sbin/nginx -s reload

 

到此我們基於端口的虛擬主機就配置完成了,下面在瀏覽器進行訪問測試,輸入192.168.3.136:8080,觀察顯示結果

wKiom1YE8BeQC1EqAADPbPbGQW8917.jpg

 

 

三、基於用戶請求做訪問控制的配置

1.    編輯配置文件/etc/nginx/nginx.conf

#vim /etc/nginx/nginx.conf
….將上面server{}段的內容改爲如下…..
server {
        listen       8080; #監聽8080端口
        server_name  www.vega.ict;  #定義主機名
  #凡是用戶的URL帶/的就定向至本地文件系統路徑:/vhosts/web1/中
        location / {
                root "/vhosts/web1/";
        }
  #凡是用戶的URL以.txt結尾的就定向至本地文件系統路徑:/vhosts/text/中
        location ~* \.txt$ {
                root "/vhosts/text/";
        }
    }

2.    提供測試頁面目錄及頁面主目錄文件

#mkdir /vhosts/text
#vim/vhosts/web1/a.txt
….添加如下內容,….
It is  /vhosts/web1/a.txt
#vim/vhosts/text/a.txt
….添加如下內容,….
It is  /vhosts/text/a.txt


3.    重新載入配置文件,並進行相應測試

#/usr/local/nginx/sbin/nginx -s reload

 

在瀏覽器中測試訪問,分別輸入:http://192.168.3.136:8080/a.txt,之所以是訪問的/vhosts/text/a.txt是因爲~*location的優先級高於不帶任何符號的location,所以就被定向至/vhosts/text/a.txt而非/vhosts/web1/a.txt.

wKioL1YE8DCBPKEMAACk0FUMo6A937.jpg

 

四、基於IP的訪問控制的配置(以狀態頁面爲例)

1.編輯配置文件,添加location /status {}段:

#vim /etc/nginx/nginx.conf
…..在上述定義server{}段中添加如下內容….
location /status {  #定義狀態頁的URL爲/status
                stub_status on; #開啓狀態頁
                allow 192.168.3.0/24; #允許192.168.3.0網段的主機訪問
                deny all; #其他網段的主機禁止訪問

       }

2.測試語法是否有誤,然重新載入配置文件,最後執行訪問測試即可

# /usr/local/nginx/sbin/nginx  -t
# /usr/local/nginx/sbin/nginx  -s reload

基於IP的控制就配置完成了,下面對其進行測試訪問,在瀏覽器中輸入:http://192.168.3.136:8080/status,觀察訪問結果!!wKiom1YE8ECyR-qdAAC8ZUldoHA997.jpg

 

五、基於用戶的訪問控制的配置

1.編輯配置文件/etc/nginx/nginx.conf

#vim /etc/nginx/nginx.conf
………在location{}段中,添加藍色2行即可……
location /status {
               stub_status on;
               allow 192.168.3.0/24;
               deny all;
                auth_basic "Only for VIP";
                auth_basic_user_file/etc/nginx/users/.htpasswd;
        }

2./etc/nginx目錄創建認證用戶目錄users,並用命令htpasswd爲用戶tom創建認證文件.htpasswd(最好用隱藏文件,如.htpasswd

# mkdir /etc/nginx/users
# yum install httpd –y
#htpasswd -c -m /etc/nginx/users/.htpasswd tom
….輸入密碼123即可

3.確保沒有語法錯誤,並重新載入配置文件

#/usr/local/nginx/sbin/nginx -t
#/usr/local/nginx/sbin/nginx -s reload

 

到此我們基於用戶的訪問控制配置就完成了,下面對已經完成的配置進行訪問測試,在瀏覽器中輸入:http://192.168.3.136:8080/status,然後輸入用戶名tom和密碼:123,認證通過即可訪問nginx web服務器的狀態頁面了

wKiom1YE77_BLywgAAGS6SB76so625.jpg


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