課前回顧主要講述了nginx的安裝配置流程
剛開始遇到了一點問題,ping不同外網,但是可以ping通
網關、ip、和dns,解決思路:首先找到網卡配置文件檢查ip、網關、和dns,發現都沒有問題,然后ping網關、ip、dns,都沒有問題,這時候就關閉一個叫做NetworkManager的管理工具包並禁止開機自啟,就OK了
安裝nginx:首先更換官方源,復制官方配置文件,然后yum下載,安裝完成后啟動nginx
檢查端口和進程,打開瀏覽器訪問默認用的ip訪問,前提是沒有做域名解析,注意的點是關閉虛擬機的防火牆
配置nginx:vim /etc/nginx/nginx.conf
然后手寫server標簽
server寫法:server{
監聽的端口
listen 80;
server的域名
server_name www.wzh.com;
站點目錄和默認頁面
location / {
root /opt/wzh;
index index.html index.htm;
}
}
寫完后保存退出,然后檢查語法,重新加載nginx,根據配置文件的需求創建出站點目錄並編輯一個index.html默認頁面,接着在hosts文件里做ip和域名解析,然后重新訪問瀏覽器
注:如果在配置文件的站點目錄寫的是相對路徑html的時候默認是在/usr/share/nginx/html/下面,但是一般不寫相對路徑,容易出錯
改名復制小技巧
在xxx后面加上.conf
mv xxx {,.conf}
給xxx備份
cp xxx{,.bak}
關於在server標簽配日志:作用域越小優先級越高
比如在全局配置了日志另外在location里面又配置了,會優先選擇location里的配置,把location里的日志注釋了才會選擇全局的,在精細點如果又加入了一個/xxx的日志,那么訪問/xxx的時候日志只會記錄在/xxx里面
關於狀態碼:當訪問一個網站的時候並不只是加載頁面還有很多的比如圖片之類的東西,頁面可以顯示但是別的東西可能加載不出來也會產生404的狀態碼,所以解決的話就要找到network里面的狀態碼看看具體的路徑,然后把這個路徑創建出來
nginx模塊
學習nginx模塊然后把模塊加入nginx的配置文件從而實現頁面的各種展示形式和功能
找模塊的方式:在瀏覽器上的網址框里輸入nginx.org打開nginx的官方網站,然后點開documentation,往下拉找到Modules reference,下面就是各種模塊
index模塊:作用就是展示網站的默認頁面
Syntax: index file ...;
Default:
index index.html;
Context: http, server, location
注:如果配置文件里有路徑但是沒有配置index會有403的報錯
403:找不到主頁
404:找不到頁面
** ngx_http_autoindex_module:**
# 自動獲取,把瀏覽器頁面變成可預覽的目錄,默認是off,改成on
Syntax: autoindex on | off;
Default:
autoindex off;
Context: http, server, location
# 把文件大小更精確的輸出,默認是on,改成off
Syntax: autoindex_exact_size on | off;
Default:
autoindex_exact_size on;
Context: http, server, location
# 默認顯示的格式html
Syntax: autoindex_format html | xml | json | jsonp;
Default:
autoindex_format html;
Context: http, server, location
This directive appeared in version 1.7.9.
# 顯示本地時間,默認是off改成on
Syntax: autoindex_localtime on | off;
Default:
autoindex_localtime off;
Context: http, server, location
** ngx_http_charset_module:**字符集模塊解決亂碼
Syntax: charset charset | off;
Default:
charset off;
Context: http, server, location, if in location
crm學習方式:先抄官網(copy),然后運行(run),最后修改(modify)
手動配置autoindex模塊
server {
listen 80;
server_name www.wzh.com;
charset "utf-8,gbk";
access_log /var/log/nginx/wzh_access.log main;
location / {
root /opt/wzh;
autoindex on;
autoindex_exact_size off;
autoindex_localtime off;
autoindex_format html;
}
}
# 配置完成后首先檢測語法O不OK,然后重新加載nginx,最后再滿足配置文件的需求,創建相對應的目錄做域名解析,然后再在創建出的站點目錄下面創建幾個文件,最后訪問瀏覽器
**檢測語法**
nginx -t
**重新加載**
systemctl reload nginx
**創建目錄**
mkdir /opt/wzh
**做域名解析**
在hosts文件里輸入10.0.0.7空格www.wzh.com保存退出
**創建文件**
cd /opt/wzh/
touch www.html
[root@web01 wzh]# touch zzz.html
[root@web01 wzh]# touch hahah.html
[root@web01 wzh]# touch hahah.txt
touch ggg.html
**文件里面寫內容**
[root@web01 wzh]# echo 我 >hahah.txt
[root@web01 wzh]# echo 叫 >hahah.html
[root@web01 wzh]# echo 王 >ggg.html
[root@web01 wzh]# echo 張 >zzz.html
[root@web01 wzh]# echo 行 >www.html
**跟阿里雲時間同步**
[root@web01 wzh]# yum install -y ntpdate
[root@web01 wzh]# ntpdate time1.aliyun.com
**瀏覽器訪問**
注:**站點目錄下面不能創建index.html的文件,如果創建了那么瀏覽器就是默認找這個頁面
模塊監控和模塊認證
alias:重新定義站點目錄,比如我在配置文件里想定義多個站點目錄的時候如果用root就會產生報錯,這時候改成alias就OK了
nginx的狀態監控
# 模塊名:ngx_http_stub_status_module記錄nginx的狀態
Syntax: stub_status;
Default: —
Context: server, location
#寫法
location = /basic_status {
stub_status;
}
#如果使用源碼安裝的nginx必須加上--with-http_stup_status_module這個選項才可以使用這個模塊
認證模塊
# 模塊名: ngx_http_auth_basic_module
# 寫法
location / {
auth_basic "closed site";
auth_basic_user_file conf/htpasswd;
}
# 默認是關閉的,改成on
Syntax: auth_basic string | off;
Default:
auth_basic off;
Context: http, server, location, limit_except
# 想使用這個模塊要安裝httpd-tools,因為這個服務是apache提供的
安裝完成會有一個htppasswd命令
這個命令的選項-b和-c
-b:是交互密碼
-c:是免交互在命令行輸入
-n:可以添加多個用戶和-c不能同時使用
練習題
使用五個模塊配置server站點**
環境准備
一台新虛擬機ip10.0.0.7
首先關閉防火牆
systemctl stop firewallld
禁止開機自啟
systemctl disable firewalld
關閉selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
然后修改nginx 的源打開nginx.org官網。找到download,然后點進去查看穩定版本,點stable and mainline,找到RHEL/CentOS的配置文件和內容,在虛擬機里面編輯這個配置文件,把內容粘貼進去,保存退出,然后下載nginx,下載完成后開啟nginx,並加入開機自啟,然后檢測端口和進程,沒問題就去瀏覽器訪問
然后就是修改nginx的配置文件
編輯nginx的配置文件
[root@web01 conf.d]# vim /etc/nginx/conf.d/www.wzh.conf
server {
listen 80;
server_name www.wzh.com;
charset "utf-8";
access_log /var/log/nginx/wzh_access.log main;
location / {
root /opt/wzh;
index index.html index.htm;
}
location /download {
alias /opt/down;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
#auth_basic "wzh";
#auth_basic_user_file /etc/nfinx/pass/download.pass;
}
location = /ztjk {
stub_status;
}
}
# 配置文件編輯完成后,檢測語法nginx -t,
語法沒問題就重新加載nginx使用systemctl reload nginx,
加載完成后根據配置文件內容創建對應的站點目錄和文件,做域名解析,
然后下載httpd-tools的工具包,
會有一個htpasswd的命令,
使用這個命令的-b和-c選項生成密碼然后瀏覽器訪問