web服務器(nginx):接收HTTP請求(例如www.baidu.com)並返回數據
web框架(django,flask):開發web應用程序,處理接收到的數據
# 面試技巧
支持高併發,能支持幾萬併發鏈接 資源消耗少,在3萬併發鏈接下開啓10個nginx線程消耗的內存不到200M 能夠作http反向代理和負載均衡 支持異步網絡i/o事件模型epoll
Tengine是由淘寶網發起的web服務器項目,在nginx基礎上支持高併發,而且性能很是的穩定.
# 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主配置文件/etc/nginx/nginx.conf是一個純文本類型的文件,整個配置文件是以區塊的形式組織的。通常,每一個區塊以一對大括號{}來表示開始與結束
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; } }
# 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
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網頁
1.若是沒有域名,寫ip地址的話,虛擬主機是自上而下的加載順序 , 2.若是有域名,nginx會基於域名區分虛擬主機
[root@localhost conf]# nginx -t
nginx -s reload
# 找到一個server虛擬主機,寫入以下配置 (必定寫在server裏面) location /status { stub_status on; }
nginx -s reload
# 安裝ab壓測命令工具
yum -y install httpd-tools
ab -kc 1000 -n 10000 http://192.168.81.130/
# 編輯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.conf的404錯誤頁面優化 找到以下配置 #當錯誤狀態碼是 40x系列就返回,nginx目錄下的40x.html error_page 404 403 402 400 401 /40x.html; cd /opt/s18lol/ vim 40x.html # 寫入想要的頁面 重啓nginx 查看404頁面
# 找到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; }
# 環境準備
準備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,查看反向代理效果