Linux -- nginx

一. 網絡服務

  web服務器和web框架的關係

web服務器(nginx):接收HTTP請求(例如www.baidu.com)並返回數據

web框架(django,flask):開發web應用程序,處理接收到的數據

  nginx

# 面試技巧
支持高併發,能支持幾萬併發鏈接 資源消耗少,在3萬併發鏈接下開啓10個nginx線程消耗的內存不到200M 能夠作http反向代理和負載均衡 支持異步網絡i/o事件模型epoll

二 . Tengine

Tengine是由淘寶網發起的web服務器項目,在nginx基礎上支持高併發,而且性能很是的穩定.  

  安裝Tengine

# 1. 檢測是否在Linux上是否經過yum安裝了nginx(只有用yum安裝才能用下面方法檢測)
rpm  -qi nginx # 若是有返回值就證實安裝了,而後刪除它
    yum remove nginx -y # 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.源代碼編譯安裝tenginx 1.下載淘寶nginx的源代碼包 wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz 2.解壓縮源代碼 tar -zxvf tengine-2.3.0.tar.gz 3.切換進入nginx源代碼目錄 進行編譯安裝 cd tengine-2.3.0 4.釋放編譯文件,指定安裝路徑 ./configure --prefix=/opt/s18tngx/ 5.開始編譯且安裝 make && make install 6.查看nginx的安裝目錄有哪些東西 [root@localhost s18tngx]# ls # conf 存放nginx的配置文件目錄的 # html 存放前端文件的地兒 # logs 存放nginx日誌文件的目錄 # sbin 存放nginx的可執行命令 7.配置nginx的環境變量,支持快捷啓動 [root@localhost sbin]# vim /etc/profile 把sbin的絕對路徑加到path裏 8.使其生效 source /etc/profile 9.啓動nginx 直接輸入nginx命令 10.修改nginx的首頁文件 存放nginx安裝目錄下的html文件夾中,名爲index.html的文件 11.vim index.html 寫入想要展現的頁面

三 . nginx配置文件學習

Nginx主配置文件/etc/nginx/nginx.conf是一個純文本類型的文件,整個配置文件是以區塊的形式組織的。通常,每一個區塊以一對大括號{}來表示開始與結束

  nginx主配置文件解析

    coreModule核心模塊html

user www; #Nginx進程所使用的用戶
worker_processes 1;             #Nginx運行的work進程數量(建議與CPU數量一致或auto)
error_log /log/nginx/error.log  #Nginx錯誤日誌存放路徑
pid /var/run/nginx.pid          #Nginx服務運行後產生的pid進程號

    event事件模塊前端

events { worker_connections //每一個worker進程支持的最大鏈接數 use epoll; //事件驅動模型, epoll默認 }

    http內核模塊python

# 公共的配置定義在http{}
http {   #http層開始
... gzip on; # 開啓壓縮圖片功能
    # 使用Server配置網站, 每一個Server{}表明一個網站(簡稱虛擬主機)
    'server' { listen 80;                 #監聽端口, 默認80
        server_name  localhost;  # 提供服務的域名或主機名
        access_log host.access.log  # 訪問日誌
        # 控制網站訪問路徑
        'location' / { root /opt/share/nginx/html;   # 存放網站代碼路徑
            index  index.html index.htm;    # 服務器返回的默認頁面文件
 } # 指定錯誤代碼, 統必定義錯誤頁面, 錯誤代碼重定向到新的Locaiton
        error_page   500 502 503 504  /50x.html; } }

  nginx功能學習

# 1. C:\Windows\System32\drivers\etc\hosts 用notepad++打開
修改windows的hosts文件,就是寫一個假的域名 # 2.寫入測試域名,以下
192.168.81.130 www.s18lol.com (格式必須是這樣) 而後輸入www.s18.lol.com 就訪問的是192.168.81.130

  配置nginx多虛擬主機實戰, 其實就是修改nginx.conf,寫入多個server標籤,支持多個虛擬主機

server { listen 80; server_name www.s18dnf.com; location / { root /opt/s18dnf/;    # 須要建這個文件夾
 index index.html index.htm; } #第二個虛擬主機 lol網址
server { listen 80; server_name www.s18lol.com; location / { root /opt/s18lol/;   # 須要建這個文件夾
 index index.html; } }

  新建所須要的文件夾

mkdir -p /opt/s18dnf/   /opt/s18lol/
# 在這兩個文件夾下分別:
touch index.html     # 而後去copy網頁

  nginx多虛擬主機的兩個概念

1.若是沒有域名,寫ip地址的話,虛擬主機是自上而下的加載順序 , 2.若是有域名,nginx會基於域名區分虛擬主機

  測試語法是否正確

[root@localhost conf]# nginx -t

  改完配置,從新加載nginx,平滑重啓

nginx -s reload 

四 . 學習nginx的狀態模塊功能

  1.修改nginx.conf的配置文件

# 找到一個server虛擬主機,寫入以下配置 (必定寫在server裏面)
location /status { stub_status on; }  

  2.重啓nginx,加載status狀態模塊

nginx -s reload 

  3.經過ab壓測命令,去給網站發n多個請求

# 安裝ab壓測命令工具
yum -y install httpd-tools

  4.給服務器nginx發10000個請求

ab -kc 1000 -n 10000 http://192.168.81.130/

六 . 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下的日誌文件,檢測用戶請求信息 # cd 到 logs(這樣才能執行下面的命令)
    tail -f  logs/access.log 

七 . nginx的404頁面

修改nginx.conf的404錯誤頁面優化 找到以下配置 #當錯誤狀態碼是 40x系列就返回,nginx目錄下的40x.html
        error_page  404 403 402 400 401               /40x.html; cd /opt/s18lol/ vim 40x.html # 寫入想要的頁面
 重啓nginx 查看404頁面    

八 . nginx限制ip訪問功能

# 找到nginx.conf修改以下代碼
        location / { #禁止192.168.226.0/24 這個地址段全部的ip訪問 
             # 192.168.226.0/24 # 0就是0-255字段,24是子網掩碼

            # 禁止 192.168.226.1 這個ip訪問
            deny  192.168.226.1 ; root /opt/s18dnf; index index.html index.htm; }

九 . 實現nginx反向代理功能

# 環境準備 
準備2臺機器 一個是真實資源文件 192.168.81.130 就理解爲房東 ,提供dnf的資源界面 一個是反向代理服務器 192.168.81.131 理解爲中介,當咱們訪問中介,就訪問到dnf的網站資源 1.分別在2臺機器,安裝nginx 2.資源服務器已經配置好,返回dnf頁面 3.反向代理服務器配置以下 vim編輯nginx.conf 找到第一個server虛擬主機 修改配置以下 server_name 192.168.81.131; location / { proxy_pass http://192.168.226.130; } 4.重啓nginx,查看反向代理效果
相關文章
相關標籤/搜索