第二十一課時預習筆記
一、修改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 |
|
把這一段刪掉,修改成:
1 2 3 4 5 6 7 8 |
|
第一行: 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 |
|
這樣您在瀏覽器直接輸入圖片地址就不會再顯示圖片出來了,也不可能會再右鍵另存什麼的。
第五行: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