卸載yum安裝的ngjnxhtml
yum remove nginx -y
編譯安裝nginx步驟前端
編譯安裝nginx的步驟 1.解決軟件依賴 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y 2.下載nginx的源代碼包,這裏用的淘寶的tengine wget http://tengine.taobao.org/download/tengine-2.3.1.tar.gz 3.解壓縮tnginx包 tar -zxvf tengine-2.3.1.tar.gz 4.進入源碼目錄,開始編譯三部曲 ./configure --prefix=/opt/tngx231/ make && make install 5.能夠使用了 發現缺乏sqllite這個一個軟件依賴包,就得直接刪除編譯好的軟件,從新編譯便可 6.進入安裝好的tngx321目錄,查看有哪些東西 conf 存放nginx的配置文件 html 存放前端文件的 logs 存放nginx的日誌文件 進入sbin 啓動nginx ./nginx 7.配置path變量,能夠快捷使用nginx命令 vim /etc/profile PATH='/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tngx231/sbin' 8.查看nginx的首頁文件 index.html
nginx的功能性學習,全部的功能都是經過nginx.conf配置文件定義的python
修改配置參數,就實現了不一樣的功能nginx
一、使用nginx配置一個站點,進行訪問,例如index.html web
vim /html/index.html
二、nginx.conf中的配置sql
【虛擬主機站點功能】django
server { # 監聽端口 listen 85; # 域名能夠有多個用空格隔開 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main; #網站的路徑匹配,如同django的urls匹配,對用戶的訪問url進行路徑分配 #當請求url長這樣時: # 192.168.16.142:85/ 就走以下location配置 location / { #deny 192.168.16.0/24; #root參數是定義網頁根目錄的,能夠修改 root /opt/html; #index 定義網頁首頁名字的 index index.html index.htm; } #當用戶請求url是 192.168.16.142:85/pic/monkeyKing.jpg location /pic { #經過alias別名參數,去這個路徑下找 alias /opt/pic/; } # 404頁面 error_page 404 /404.html; # redirect server error pages to the static page /50x.html }
【日誌功能】vim
找到nginx.conf中的http{}代碼塊,而後,找到裏面的以下配置windows
#日誌格式設定 #$remote_addr與$http_x_forwarded_for用以記錄客戶端的ip地址; #$remote_user:用來記錄客戶端用戶名稱; #$time_local: 用來記錄訪問時間與時區; #$request: 用來記錄請求的url與http協議; #$status: 用來記錄請求狀態;成功是200, #$body_bytes_sent :記錄發送給客戶端文件主體內容大小; #$http_referer:用來記錄從那個頁面連接訪問過來的; #$http_user_agent:記錄客戶瀏覽器的相關信息; #一般web服務器放在反向代理的後面,這樣就不能獲取到客戶的IP地址了,經過$remote_add拿到的IP地址是反向代理服務器的iP地址。
反向代理服務器在轉發請求的http頭信息中,能夠增長x_forwarded_for信息,用以記錄原有客戶端的IP地址和原來客戶端的請求的服務器地址。 log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';
全部的日誌信息和錯誤信息都在logs文件夾下:瀏覽器
access.log日誌信息:
error.log錯誤日誌:
nginx.pid當前nginx運行的進程id:
【禁止訪問】
在nginx.conf中,找到以下參數,修改
location / { #拒絕訪問,192.168.16.0網段的同窗都沒法訪問 /24是子網掩碼的意思 deny 192.168.16.0/24; root html; index index.html index.htm; }
【修改虛擬主機的家目錄】
虛擬主機就是nginx.conf中 server{}標籤訂義的代碼
網站的路徑匹配,如同django的urls匹配,對用戶的訪問url進行路徑分配
#當請求url長這樣時: # 192.168.16.142:85/ 就走以下location配置 location / { #deny 192.168.16.0/24; #root參數是定義網頁根目錄的,能夠修改 root /opt/html; #index 定義網頁首頁名字的 index index.html index.htm; } #當用戶請求url是 192.168.16.142:85/pic/monkeyKing.jpg location /pic { #經過alias別名參數,去這個路徑下找 alias /opt/pic/; } location /media { alias /opt/media; }
【404頁面】
-nginx的404頁面,在nginx.conf中,找到一個error_page 參數 #當請求錯誤碼是404 時,就返回一個404.html給用戶查看,而且這個文件在網頁根目錄下 error_page 404 /404.html;
【虛擬主機功能】
一個nginx下運行多個網址
# 找到nginx安裝目錄下的conf文件夾,找到nginx.conf # 經過編寫多個server標籤實現多虛擬主機 # nginx.conf配置以下: # 虛擬主機1: server { # 監聽的端口 listen 80; #這裏進行域名匹配 server_name www.s20hanju.tv; #這裏進行路徑匹配 location / { #root定義網頁根目錄 root /opt/s20/hanju; #index 定義網站首頁文件名 index index.html; } } # 虛擬主機2: server { listen 81; server_name www.s20lol.tv; location / { root /opt/s20/lol; index index.html; } } # 改完nginx.conf的配置,須要重啓nginx -s reload # 分別準備hanju和lol的數據文件夾 # 而後再去windows中準備hosts文件,進行域名解析 # 文件絕對路徑 # C:\Windows\System32\drivers\etc\hosts # 內容以下: 192.168.16.142 www.s20hanju.tv 192.168.16.142 www.s20lol.tv # 最後在windows中進行訪問,分別訪問lol和hanju的網址內容
域名解析是先從本地的host文件中開始找,若是找不到會去dns找;
三、nginx的啓停命令
直接輸入 nginx 是啓動 nginx -s stop 中止 nginx -s reload 平滑加載,不重啓nginx,從新讀取配置文件,生效
四、liunx的壓測命令
1.安裝ab命令 yum -y install httpd-tools 2.使用ab壓測命令 -n requests #執行的請求數,即一共發起多少請求。 -c concurrency #請求併發數。 -k #啓用HTTP KeepAlive功能,即在一個HTTP會話中執行多個請求。 # 進行壓測命令,統計網站請求數 ab -kc 1000 -n 100000 http://192.168.16.142/
五、nginx狀態模塊
找到nginx.conf而後再找到一個虛擬主機server標籤,添加以下配置便可 location /status { #開啓nginx狀態功能 stub_status on; }