主要內容: https://www.cnblogs.com/pyyu/p/9468680.html?tdsourcetag=s_pcqq_aiomsghtml
1 web服務器和web框架的關係:python
a : web服務器(nginx): 接收http請求(例如www.pythonav.cn/xiaocang.jpg)並返回數據linux
b : web框架(django, flask): 開發web應用程序nginx
2 nignx定義: web
a : nginx是一個開源的,支持高性能,高併發的www服務和代理服務軟件。它是一個俄羅斯人lgor sysoev開發的,做者將源代碼開源出來供全球使用。sql
b : nginx比它大哥apache性能改進許多,nginx佔用的系統資源更少,支持更高的併發鏈接,有更高的訪問效率。apache
c : nginx不可是一個優秀的web服務軟件,還能夠做爲反向代理,負載均衡,以及緩存服務使用。django
常見的服務器: IIS、Nginx 和 Apache, IIS(Internet Information Services,互聯網信息服務)是 Windows 系統中默認的 Web 服務程序.flask
Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了不少高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等獲得了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。windows
3 nignx的安裝
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.下載源碼包
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
3.解壓縮源碼包
tar -zxvf nginx-1.12.0
4.在當前路徑下經過configure這個腳本文件執行,釋放makefile,而後指定安裝nginx的路徑,以及開啓模塊功能ssl與狀態模塊功能
./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module
5.編譯且編譯安裝
make && make install
6.在/opt/nginx1-12/ 安裝好nginx的目錄,找到一個sbin的文件夾,找到nginx的啓動命令,而後啓動nginx服務
./sbin/nginx #直接啓動nginx
./sbin/nginx -s stop
./sbin/nginx -s reload #平滑重啓(修改了nginx配置文件,不重啓服務就加載配置且生效)
../sbin/nginx -t 檢測nginx.conf 配置文件的語法正確性
7 .檢查端口,進程,: ps - ef | grep 'nginx' netstat - tunlp | 80而後經過瀏覽器訪問nginx頁面,linux
ip:端口號
8 nignx的主配置文件, 在nginx.conf修改
4部署一個web站點: nginx默認站點是在nginx目錄下的html文件中, 這裏從nginx.conf中查到.
location /{ root html; #這裏是默認的站點html文件夾,也就是 /opt/nginx1-12/html/文件夾下的內容 index index.html index.htm; #站點首頁文件名是index.html }
若是想要部署網站業務數據, 只需把開發好的程序放在html目錄下便可
只需經過域名就能夠訪問.
5 nignx的目錄結構:
a : conf 存放nginx全部配置文件的目錄, 主要是nginx.conf
b : html存放nginx默認站點的目錄: 如index.html. error.html
c : logs存放nignx默認日誌的目錄, 如access.log, error.log
d : sbin 存放nignx主命令的目錄, sbin/nignx
6 nignx的主配置文件的解析: 詳情見老師博客
7 虛擬主機
a : 定義虛擬主機的概念就是在web服務裏的一個獨立的網站站點, 這個站點對應獨立的域名(ip), 具備獨立的程序和資源目錄, 能夠獨立的對外提供服務.
b : 這個獨立的站點是在nignx.conf的配置文件中設置, 使用server{}代碼塊標籤來表示一個虛擬主機
c : nignx支持多個server{}標籤, 即支持多個虛擬主機站點
d :虛擬主機的類型: 基於域名的虛擬主機, 經過不一樣的域名區分不一樣的虛擬主機,是企業應用最廣的虛擬主機
基於端口的虛擬主機, 經過不一樣的端口區分不一樣的虛擬主機, 通常用做企業內部網站,不對外直接提供服務的後臺,例如www.pythonav.cn:9000.
8nginx狀態信息配置
1) 監測nignx是否安裝了status模塊: /opt/nginx/sbin/nginx -V
2) 啓動status狀態功能, 修改配置文件:
#在訪問ip/status的時候,進入狀態功能 location /status { #開啓nginx狀態功能 stub_status on; }
3) 平滑重啓nignx: ./sbin/nignx -s reload
4) 訪問status頁面: http://www.myhanjutv.com/status
5) status頁面解析的解釋:
9 多虛擬主機的配置:
1 修改nignx底下的配置文件:
server { listen 80; server_name www.s14huoying.com; location / { #指明網頁根目錄在/opt/html/文件夾下 root /data/huoying; index index.html index.htm; } } server { listen 80; server_name www.s14hanju.com; location / { #指明網頁根目錄在/opt/html/文件夾下 root /data/hanju; index index.html index.htm; } }
2 從新加載nignx配置文件: ../sbin/nignx -t 檢查語法是否正確
../sbin/nignx -s reload 平滑重啓
3 準備不一樣虛擬主機的站點資料: mkdir -p /data/{hanju,huoying}
4 寫入到本地dns解析文件, 因爲我在windows中經過瀏覽器訪問, 應該在windows的host文件中添加記錄
hosts文件就是一個本地dns(就是將域名轉化成ip地址)強制解析的文件
在C:\Windows\System32\drivers\etc\hosts ,寫入以下信息192.168.12.96 www.s14huoying.com
5 在wiindows中,測試訪問多域名 配置.
10 nignx訪問日誌功能
1 在配置文件中, 打開註釋
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;
2 參數詳解:
$remote_addr 記錄客戶端ip $remote_user 遠程用戶,沒有就是 「-」 $time_local 對應[14/Aug/2018:18:46:52 +0800] $request 對應請求信息"GET /favicon.ico HTTP/1.1" $status 狀態碼 $body_bytes_sent 571字節 請求體的大小 $http_referer 對應「-」 因爲是直接輸入瀏覽器就是 - $http_user_agent 客戶端身份信息 $http_x_forwarded_for 記錄客戶端的來源真實ip 97.64.34.118
3打開該功能後, 可經過tail -f access_log 來查看用戶的身份信息.
10 錯誤頁面的展示
1 在配置文件中添加 nignx.conf
server { listen 80; server_name www.s14huoying.com; location / { #指明網頁根目錄在/opt/html/文件夾下 root /data/huoying; index index.html index.htm; deny 192.168.12.120; } error_page 400 401 402 404 /40x.html; #當請求來自於wwww.s14huoying.com/status/ }