06 Nginx
1.檢查linux上是否經過yum安裝了nginx
rpm -qi nginx
2.解決安裝nginx所依賴包
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
3.源代碼編譯安裝Nginx(在/opt目錄下)
1.下載淘寶Nginx源碼包
wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz
2.解壓縮源代碼
tar -zxvf tengine-2.3.0.tar.gz
3.進入到tengine-2.3.0目錄,進行編譯安裝
cd tengine-2.3.0
4.釋放編譯文件,指定安裝路徑
.configure --prefix=/opt/tengine
5.開始編譯且安裝
make&&make install
6.卸載以前經過yum安裝的Nginx
yum remove nginx -y
7.查看nginx的安裝目錄
ls /opt/tengine
conf:存放nginx全部的配置文件的目錄
html:存放前端靜態頁面
logs:存放nginx的日誌目錄
sbin:存放nginx的可執行的命令
8.配置nginx的環境變量,支持快速啓動(命令行直接nginx)
1.cd /opt/tengine/sbin
2.pwd
3.vim /etc/profile
PATH中加入pwd的結果
9.啓動nginx
nginx
10.修改nginx的首頁靜態模板文件
vim /opt/tengine/html/index.html
輸入你想要顯示的內容
4.修改nginx的配置文件的
1.vim /opt/tengine/conf/nginx.conf
#查看nginx.conf的內容,過濾掉註釋內容,和空白行
[root@wangdachui conf]# grep -v "^#" nginx.conf|grep -v "^$"
#全局變量,工做進程數
worker_processes 1;
events {
epoll;#提升大併發下小活動量的CPU利用率
worker_connections 65536; #根據linux的文件描述符來修改
}
#http表明nginx核心功能塊
http {
include mime.types;
default_type application/octet-stream;
gzip on; #開啓壓縮圖片功能
#表明nginx的虛擬主機功能
#當咱們訪問192.168.226.128:80/就進入這個虛擬主機的配置
#第一個虛擬主機dnf網址
server {
#nginx監聽的端口
listen 80;
#填寫服務器的域名,沒有域名就寫ip地址便可
server_name 192.168.226.128;
#路徑資源匹配 ,匹配 / 目錄
#192.168.226.128:80/
#這是最低級匹配,全部的請求,都會進入這個location
location / {
#root參數指的是定義一個虛擬主機根目錄
root html; #填寫靜態模板文件的絕對路徑
#index參數指定首頁文件的名字
index index.html;
}
#第二個虛擬主機 韓劇網址
server {
listen 80;#監聽80端口
server_name 192.168.226.128;服務器的ip
location / {
root /opt/s18hanju/;
index index.html;
}
}
}
2.nginx功能學習
1.修改windows下的host文件,頂一個假域名
c:windows/system32/drivers/etc/hosts
若是不能編輯,右擊選擇屬性,改變它的權限信息.
2.在最下面寫入
linux的IP 域名
192.168.119.147 www.hahahn.com
這樣就能夠經過域名訪問了
3.配置nginx多虛擬機,其實就是在nginx.conf中寫入多個server,表明多個虛擬主機
server {
listen 80;
server_name www.s18dnf.com;
location / {
root /opt/s18dnf/;
index index.html index.htm;
}
}
#第二個虛擬主機 韓劇網址
server {
listen 80;
server_name www.s18hanju.com;
location / {
root /opt/s18hanju/;
index index.html;
}
}
注意事項:1.兩個server同在http核心模塊中的同一級目錄
2.server_name若是對應的是本機的IP地址,虛擬主機是自上而下加載的,也就是說無論輸 入什麼在windows的hosts文件配好的假域名,都只會匹配到第一個虛擬主機
3.若是server_name對應的是域名,則nginx會根據域名找到與之匹配的域名對應的虛擬主機
4.修改完nginx.conf文件要平滑重啓
nginx -s reload
nginx -t 查看是否有語法錯誤
5.nginx的狀態模塊功能學習
1.修改nginx.conf的配置文件
找到一個server虛擬主機,寫入以下配置
location /status {
stub_status on;
}
2.重啓nginx,在對應域名後加 /status 加載這個status狀態模塊功能
3.經過ab壓測命令,去給網站發起n多個請求
安裝ab壓測命令工具
yum -y install httpd-tools
4.給服務器nginx,發起一萬個請求
ab -kc 1000 -n 10000 http://192.168.226.128/
5.nginx的access.log訪問日誌功能
編輯nginx.conf打開以下配置參數
打開以下注釋
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main;
重啓nginx查看logs下的日誌文件,檢測用戶請求信息
tail -f logs/access.log,而後用瀏覽器訪問時,就會看到日誌的變化.
6.優化nginx的404頁面
修改nginx.conf的404錯誤頁面優化
找到以下配置
#當錯誤狀態碼是 40x系列就返回,nginx目錄下的40x.html
error_page 404 403 402 400 401 /40x.html;
重啓nginx 查看404頁面(輸入正確的url,後面再隨便加點東西)
7.限制IP訪問
找到nginx.conf修改以下代碼
location / {
#禁止192.168.226.0/24 這個地址段全部的ip訪問
deny 192.168.226.1;
root /opt/s18dnf;
index index.html index.htm;
}
8.nginx反向代理功能
準備兩臺機器,一個是真實的資源服務器,另外一個是反向代理服務器,分別安裝nginx
一個能正常返回資源,另外一個的nginx.conf,找到一個server虛擬主機,location /配置以下:
location / {
# proxy_pass http://代理的主機IP
proxy_pass http://192.168.119.147
}
重啓nginx,而後訪問代理服務器,就會訪問到另外一臺資源服務器的資源
5.出現的問題
瀏覽器出現403(訪問權限不足)
1.將資源寫在了/root下面,普通用戶訪問不到
2.找到nginx.conf中deny屏蔽掉了此IP地址,刪除禁止就行了.
歡迎關注本站公眾號,獲取更多信息