溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

發布時間:2020-02-29 23:35:01 來源:網絡 閱讀:1103 作者:明月幽谷 欄目:系統運維

 Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼  


 

nginx安裝文件可以從官方網站http://www.nginx.org/下載。下面以穩定版nginx-1.6.0為例,介紹nginx的安裝和運行控制,實驗主機為redhat6.5系統。

免費提供源碼包:百度云盤

 https://pan.baidu.com/s/1nQ9Qok49au7Cn3elS7IbBQ

 

1,編譯安裝nginx

(1)安裝支持軟件

nginx的配置及運行需要pcre,zlib等軟件包的支持,因此應預先安裝這些軟件的開發包pcre-devel ,zlib-devel ,以便提供相應的庫和頭文件,確保nginx的安裝順利

        yum -y install pcre-devel zlib-devel gcc gcc-c++

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

 


(2)解壓nginx軟件包,并創建用戶,組。

   nginx服務程序默認以nobody身份運行,建議為其創建專門的用戶帳號,以便更準確地控制其訪問權限,增加靈活性,降低安全風險。例如:創建一個名為nginx的用戶,不建立宿主目錄,也禁止登錄到shell環境。

        tar xzvf nginx-1.6.0.tar.gz -C /opt

        cd /opt/nginx-1.6.0/

        useradd -M -s /sbin/nologin nginx

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

(3)編譯安裝nginx

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module             //開啟stub_status狀態統計模塊//
make
make install
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/   //建立軟連接,讓系統識別nginx命令

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼  

 Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼  

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼  

(4)nginx的運行控制

-----檢查、啟動、重啟、停止--------
nginx -t        //檢查
nginx            //啟動
killall -1 nginx    //重啟
killall -3 nginx    //停止

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

-------制作管理腳本--------
vi /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
  start)
    $PROG
    ;;
  stop)
    kill -s QUIT $(cat $PIDF)
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  reload)
    kill -s HUP $(cat $PIDF)
    ;;
  *)
        echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
esac
exit 0

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼
chmod +x /etc/init.d/nginx
chkconfig --add nginx

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

2.nginx訪問狀態統計

nginx內置了http_stub_status狀態統計模塊,用來反饋當前的web訪問情況,要使用nginx的統計功能,除了啟用內建模塊以外,還需要修改nginx.conf配置文件,指定訪問位置并添加stub_status配置代碼。

[root@ling conf]# vim nginx.conf

server {
        listen       80;
        server_name  localhost;
    charset utf-8;

        location / {
            root   html;
            index  index.html index.htm;
        }

        location ~ /status {
        stub_status   on;
        access_log off;
        }                                                           //在"server"這里插入這4行的

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       }
    }

-------解釋如下---------
location ~ /status {        //訪問位置為/status
        stub_status   on;    //打開狀態統計功能
        access_log off;        //關閉此位置的日志記錄
}

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

然后重啟nginx服務,新的配置生效后,在瀏覽器中訪問nginx服務器的/status網站位置,可以看到當前的狀態統計信息,

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

     Active connettions          //表示當前的活動連接數

     server accepts handle requests    //表示已經處理的連接信息    三個數字依次表示:已處理的連接數;成功的TCP握手次數;已處理的請求數










 



Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼  

3,基于域名的虛擬主機

利用虛擬主機,不用為每個要運行的網站提供一臺單獨的nginx服務器或單獨運行一組nginx進程,虛擬主機提供了在同一臺服務器,同一組nginx進程上運行多個網站的功能。

使用nginx搭建虛擬主機服務器時,每個虛擬web站點擁有獨立的“server{}”配置段,各自監聽的ip地址,端口號,網站名。

(1)修改配置文件nginx.conf,把配置文件中的server{}代碼段全部去掉,加入兩個新的server{}段,對應兩個域名accp.com  ,benet.com。

 

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼


Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

(2)分別準備各個網站的站點目錄和測試首頁

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

(3)在瀏覽器中,分別訪問兩個域名,可以看到不同的頁面。

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

4,基于端口的虛擬主機

(1)在配置文件nginx.conf中再添加一個server{}段,端口改為8080,和benet.com對應同一個ip地址。

 


Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

(2)創建站點目錄和測試頁面

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

(3)訪問www.benet.com:8080端口


Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

5,授權用戶的訪問控制

nginx和apache一樣,可以實現基于用戶授權的訪問控制,當客戶端想要訪問相應的網站或者目錄時,要求用戶輸入用戶名和密碼才能正常訪問。

(1)使用htpasswd生成用戶認證文件,

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

(2)修改密碼文件的權限為400,將所有者改為nginx,設置nginx的運行用戶能夠讀取。

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

(3)修改主配置文件,添加相應配置項

location / {
            auth_basic "secret";
            auth_basic_user_file /usr/local/nginx/passwd.db;
            root   html;
            index  index.html index.htm;
        }

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

(4)用瀏覽器訪問網址,檢驗控制效果。

Nginx訪問控制與虛擬主機(基于端口,基于域名),內附源碼

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女