詳見可參考:https://www.cnblogs.com/tiger666/p/10239307.html?tdsourcetag=s_pctim_aiomsghtml
django 重量級別的框架,功能大而全, form表單,ORM, 內置的模塊很是多 600-2000req/spython
flask 輕量級的框架, 從第三方引入過來的 2500req/slinux
tornado(沒學過) 異步非阻塞 支持多用戶併發訪問3000req/snginx
sanic 是python3.5以後的一個框架, 20000req/sweb
咱們的WEB框架是用來處理用戶請求,獲取數據並返回給用戶查看面試
在上面開發應用程序用的sql
是用來對外提供服務的, www服務apache
IISdjango
apache 很是普通的WEB服務器 對高併發沒有太大的支持flask
tengine 淘寶本身的nginx服務器,其實它的配置和nginx同樣
面試回答nginx技巧
支持高併發,能支持幾萬併發鏈接
資源消耗少,在3萬併發鏈接下開啓10個nginx線程消耗的內存不到200M
能夠作http反向代理和負載均衡
支持異步網絡i/o事件模型epoll
linux下測試訪問網站命令
curl -i 域名 # 訪問網站並返回網站內容(源代碼) curl -I 域名 # 返回網站的服務器信息
1 安裝所須要的依賴庫 yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2 下載nginx安裝源碼包 wget -c https://nginx.org/download/nginx-1.12.0.tar.gz 3.解壓縮源碼 tar -zxvf nginx-1.12.0.tar.gz 4.配置,編譯安裝 ./configure --prefix=/opt/nginx112 make && make install 5.啓動nginx,進入sbin目錄,找到nginx啓動命令 cd /opt/nginx112/sbin ./nginx #啓動 ./nginx -s stop #關閉 ./nginx -s reload # 平滑重啓 ,修改了nginx.conf以後,能夠不重啓服務,加載新的配置 或者 /opt/nginx112/sbin/nginx -s reload # 絕對路徑平滑重啓
7 nginx配置文件詳解
#定義nginx工做進程數 worker_processes 5; #錯誤日誌 #error_log logs/error.log; #http定義代碼主區域 http { include mime.types; default_type application/octet-stream; #定義nginx的訪問日誌功能 #nginx會有一個accses.log功能,查看用戶訪問的記錄 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; sendfile on; keepalive_timeout 65; #開啓gzip壓縮傳輸 gzip on; #虛擬主機1 定義一個 鬥魚網站 server { #定義nginx的訪問入口端口,訪問地址是 192.168.11.37:80 listen 80; #定義網站的域名www.woshidouyu.tv #若是沒有域名,就填寫服務器的ip地址 192.168.11.37 server_name www.woshidouyu.tv; #nginx的url域名匹配 #只要請求來自於www.woshidouyu.tv/111111111 #只要請求來自於www.woshidouyu.tv/qweqwewqe #最低級的匹配,只要來自於www.woshidouyu.tv這個域名,都會走到這個location location / { #這個root參數,也是關鍵字,定義網頁的根目錄 #以nginx安裝的目錄爲相對路徑 /opt/nginx112/html #能夠自由修改這個root定義的網頁根目錄 root html; #index參數定義網站的首頁文件名,默認的文件名 index index.html index.htm; } #錯誤頁面的優化(只要是遇到前面4系列的錯誤,就會直接跳轉到相對目錄下的40x.html頁面) error_page 400 401 402 403 404 /40x.html; } }
8 跑一個鬥魚網站出來
修改本身本地的host文件
路徑以下:
C:\Windows\System32\drivers\etc
server { listen 80; server_name www.qishi2douyu.com; #access_log logs/host.access.log main; location / { root /opt/qishi2douyu/; index index.html index.htm; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
1 在192.168.12.56服務器上,跑3個網站出來(須要在本地文件host中添加相應的IP地址)
配置文件以下:
server { listen 80; server_name www.qishi2douyu.com; #access_log logs/host.access.log main; location / { root /opt/qishi2douyu/; index index.html index.htm; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name www.qishi2huya.com; location / { root /opt/qishi2huya/; index index.html index.htm; } } server { listen 80; server_name www.qishi2jd.com; location / { root /opt/qishi2jd/; index index.html index.htm; } }
2 分別在/opt目錄下建立qishi2douyu、qishi2huya、qishi2jd這三個目錄
分別在目錄下建立index.html
3 平滑重啓nginx
/opt/nginx112/sbin/nginx -s reload
nginx錯誤頁面優化
1 修改配置文件
vim /opt/nginx112/conf/nginx.conf 在www.qishi2douyu.com虛擬主機下添加如下內容(server代碼塊下) error_page 400 401 402 403 404 /40x.html; location = /40x.html { root /opt/qishi2douyu/; }
2 在/opt/qishi2douyu/目錄下建立40x.html, 把淘寶的錯誤頁面源代碼拷貝過來
vim 40x.html
3 平滑重啓nginx
4 隨便訪問一個不存在的頁面
http://www.qishi2douyu.com/sladfj243
5 就能夠看到咱們配置的錯誤頁面
1 打開nginx配置文件nginx.conf
vim /opt/nginx112/conf/nginx.conf
2 修改配置文件, 啓用日誌功能
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;
3 平滑重啓nginx
4 瀏覽器訪問192.168.12.56
5.查看訪問記錄
tail -f /opt/nginx112/logs/access.log
生活中的代理:
要想去租房:
租客 —> 中介 —>房東
代購, 海淘
反向代理
1 準備兩臺機器
192.168.12.56 # 內部的django服務器
192.168.12.77 # 代理服務器
請求數據: windows ——> 192.168.12.77 ——> 192.168.12.56
返回數據: windows <—— 192.168.12.77 <—— 192.168.12.56
2 修改代理服務器192.168.12.77的配置文件
vim /opt/nginx112/conf/nginx.conf
1 準備三臺機器
1. nginx負載均衡器(192.168.12.77)
2 另外兩臺應用服務器(192.168.12.56 + 192.168.12.65)
2 先確保兩臺應用服務器可以正常訪問
http://192.168.12.56
http://192.168.12.65:8001
3 配置負載均衡器(192.168.12.77)
修改配置文件 vim /opt/nginx112/conf/nginx.conf worker_processes 1; #error_log logs/error.log; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #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; sendfile on; keepalive_timeout 65; #gzip on; upstream qishi2_xiaowei { server 192.168.12.56; server 192.168.12.65 weight=5; } server { listen 80; server_name www.qs.com; location / { root html; index index.html index.htm; proxy_pass http://qishi2_xiaowei; } #error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }