1. 程式人生 > >第二十一課時預習筆記

第二十一課時預習筆記

 一、修改nginx.conf配置檔案

mkdir /usr/local/ngxin/conf/vhost             #建立vhost 子目錄

vim /usr/local/ngxin/conf/vhost/aaa.com.conf     #編輯一個檔案 新增下面內容

server {

listen 80 default_server;  server_name aaa.com; index index.html index.htm index.php; root /data/wwwroot/default;

}

mkdir -p /data/wwwroot/default      #建立網站所放的目錄

vim index.html   #建立網站首頁

This is the default size            #新增內容

/usr/local/nginx/sbin/nginx -t      #檢查配置檔案是否錯誤

/usr/local/nginx/sbin/nginx -s reload    #重新載入 

vim /usr/local/nginx/conf/vhost/test.com.conf           #新增一個虛擬主機配置檔案

新增下面內容

server { listen 80; server_name test.com; index index.html index.htm index.php; root /data/wwwroot/test.com;

location /admin/                #這裡/指定的全部 ~指定單個檔案 { auth_basic "Auth"; auth_basic_user_file /usr/local/ngxin/conf/htpasswd;

autoindex on;

        #定義的使用者名稱密碼檔案,這裡需要用htpasswd

}

}

yum -y isntall httpd   #安裝http

htpasswd -c /usr/local/nginx/conf/htpasswd aaa             #設定一個使用者為aaa  -c只要指定一次就好,如果需要在新增多個使用者 不需要指定,這裡-c指覆蓋 New password:                          #密碼bbb Re-type new password:    Adding password for user aaa

/usr/local/nginx/sbin/nginx -s reload   #重新載入

修改(二)的test.com.conf配置檔案

server { listen 80;

server_name test.com test2.com test3.com;       #多新增幾個域名 index index.html index.htm index.php; root /data/wwwroot/test.com;

if ($host != 'test.com' ) { rewrite ^/(.*)$ http://test.com/$1 permanent; 

}                                          #寫成全部是 rewrite  http://$host/^/(.*)$ http://test.com/$1 permanent; 

}  

一、配置test.com.conf配置檔案 新增下面程式碼

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { 

expires 7d; access_log off;

}

location ~ .*\.(js|css)$ {

expires 12h; access_log off; }

實驗:

 

如果您使用的是預設站點,也就是說,您的站點可以直接輸入伺服器IP訪問的,使用root登入,修改 /usr/local/nginx/conf/nginx.conf 這個配置檔案。

如果您新建了站點,那麼修改/usr/local/nginx/conf/vhost/你的域名.conf 這個配置檔案,找到:

1

2

3

4

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires      30d;

}

把這一段刪掉,修改成:

1

2

3

4

5

6

7

8

location ~* \.(gif|jpg|png|jpeg)$ {

expires     30d;

valid_referers none blocke *.hugao8.com www.hugao8.com m.hugao8.com *.baidu.com *.google.com;

if ($invalid_referer) {

rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg;

#return 404;

}

}

第一行: location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

其中“gif|jpg|jpeg|png|bmp|swf”設定防盜鏈檔案型別,自行修改,每個字尾用“|”符號分開!

第三行:valid_referers none blocked *.it300.com it300.com;

就是白名單,允許檔案鏈出的域名白名單,自行修改成您的域名!*.it300.com這個指的是子域名,域名與域名之間使用空格隔開!

第五行:rewrite ^/ http://www.it300.com/static/images/404.jpg;

這個圖片是盜鏈返回的圖片,也就是替換盜鏈網站所有盜鏈的圖片。這個圖片要放在沒有設定防盜鏈的網站上,因為防盜鏈的作用,這個圖片如果也放在防盜鏈網站上就會被當作防盜鏈顯示不出來了,盜鏈者的網站所盜鏈圖片會顯示X符號。

這樣設定差不多就可以起到防盜鏈作用了,上面說了,這樣並不是徹底地實現真正意義上的防盜鏈!

我們來看第三行:valid_referers none blocked *.it300.com it300.com;

valid_referers 裡多了“none blocked”

我們把“none blocked”刪掉,改成

valid_referers  *.it300.com it300.com;

1

2

3

4

5

6

7

8

location ~* \.(gif|jpg|png|jpeg)$ {

expires     30d;

valid_referers *.hugao8.com www.hugao8.com m.hugao8.com *.baidu.com *.google.com;

if ($invalid_referer) {

rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg;

#return 404;

}

}

這樣您在瀏覽器直接輸入圖片地址就不會再顯示圖片出來了,也不可能會再右鍵另存什麼的。

第五行:rewrite ^/ http://www.it300.com/static/images/404.jpg;

這個是給圖片防盜鏈設定的防盜鏈返回圖片,如果我們是檔案需要防盜鏈下載,把第五行:

rewrite ^/ http://www.it300.com/static/images/404.jpg;

改成一個連結,可以是您主站的連結,比如把第五行改成:

rewrite ^/ http://www.it300.com;

這樣,當別人輸入檔案下載地址,由於防盜鏈下載的作用就會跳轉到您設定的這個連結!

最後,配置檔案設定完成別忘記重啟nginx生效!

Nginx訪問控制

配置nginx程序個數和連結數量

worker_processes  1;//程序個數,一般配置的數目和主機cpu的總核數相同。
worker_connections  1024;//單個程序最大連結數量
location / {
deny 192.168.1.109;         //禁止訪問192.168.1.109;
allow 192.168.1.0/24;192.168.0.0/16;192.0.0.0/8;        //允許訪問192.168.1.0-192.168.1.254,其他兩個網段同理
allow all;              //允許所有
}

匹配規則:按照順序依次檢測,直到匹配到第一條規則,如果全部沒有匹配到,則允許。

location / {
    auth_basic   string|off          //string為使用者認證時候的提示資訊,off為關閉認證
    auth_basic_user_file   conf/htppasswd   //使用者密碼加密檔案路徑
}

建立使用者密碼加密檔案:  官方文件說可以用Apache發行包中的htpasswd命令來建立此類檔案,所以先安裝Apache發行包。  (1)安裝Apache發行包。

sudo yum install -y httpd

(2)使用htpasswd建立加密檔案

htpasswd -b -c -m /home/bxp/Documents/install/tengine-2.2.0/nginx/conf/userpasswd bxp 123456
-b 指定使用者名稱和密碼
-c:建立一個新的檔案
-m:使用md5演算法進行加密
/home/bxp/Documents/install/tengine-2.2.0/nginx/conf/userpasswd:建立的加密檔案

Nginx解析php相關配置

  • 配置如下:
location ~ \.php$
    {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fcgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/www/test02$fastcgi_script_name;
    }
  • fastcgi_pass 用來指定php-fpm監聽的地址或者socket
  • fastcgi_index index.php #設定訪問根目錄預設去找的檔案
  • fastcgi_param SCRIPT_FILENAME /data/www/test02$fastcgi_script_name #設定訪問根目錄時預設尋找的檔案

fastcgi_param SCRIPT_FILENAME /data/www/test02/abc$fastcgi_script_name #訪問根目錄www.test02.com/ 會去預設尋找abc中index.php檔案,而此時去訪問這個index.php檔案是尋找不到的只能通過根目錄去訪問 www.test02.com/abc/index.php 返回404

  • 檢視/usr/local/php-fpm/etc/php-fpm.conf
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
;listen = 127.0.0.1:9000
listen.mode = 666
user = php-fpm
group =php-fpm