您好,登錄后才能下訂單哦!
作者:Georgekai 歸檔:學習筆記 2018/2/2
|
https://w3techs.com/technologies/overview/web_server/all
PHP:.php結尾的文件,大中小網站都有適合,動態網頁語言PHP程序的解析容器,一般配合apache或nginx解析 動態程序
Tomcat:適用于中小企業,不適合并發量高的環境
Resin:適用于大型企業,適合并發量高的環境
IIS:.asp結尾的文件,windows下web服務軟件
1.Nginx(“engine x”)是一個開源的,支持高性能、高并發的WWW服務器和代理服務軟件
2.Nginx因具有高并發(特別是靜態資源)、占用系統資源少等特性,且功能豐富而逐漸流行起來。
3.Nginx可以運行在UNIX、Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系統中。
4.當前流行的Nginx Web組合被稱為LNMP或LEMP
5.L==Linux N/E==Nginx M==MySQL P==php 網站的代碼程序 ===搭建出一個完整的網站
當前時間往前推1年到半年之間的版本相對穩定(近期的可能有bug)
1) 支持高并發:能支持幾萬并發連接(特別是靜態小文件業務環境)
2) 資源消耗少:在3萬并發連接下,開啟10個Nginx線程消耗的內存不到200MB
PS:(測試軟件工具:ab,JMeter,Webbench,LoadRunner,http_load,tcpcopy)
3) 可以做HTTP反向代理及加速緩存、即負載均衡功能(4層以及7層),
內置對RS節點服務器健康檢查功能,這相當于專業的Haproxy軟件或LVS(4層)的功能。
PS:LVS等軟件沒有健康檢查功能
4) 具備Squid等專業緩存軟件等的緩存功能。(memcache/redis)
5) 支持異步網絡I/O事件模型epoll(Linux 2.6+)
PS:apache使用的模型:select,性能沒有nginx好
Ngimx:使用最新的epoll(linux 2.6內核)模型,和kqueue(freebsd)異步網絡I/O模型
特點比喻:找女朋友,宿管阿姨查看登記信息,快速查找人員信息,這是epoll模型
Apache:使用的是傳統的select模型
特點比喻:找女朋友,宿管阿姨一個一個帶你去找,去問,這是select模型
PS:也可以參考官方文檔:從源頭構建nginx:http://nginx.org/en/docs/configure.html
cat /etc/redhat-release
uname –r
mkdir -p /server/tools
cd /server/tools
wget -q http://nginx.org/download/nginx-1.12.2.tar.gz
yum install -y pcre-devel openssl-devel
PS:不安裝pcre,不能使用rewrite模塊(rewrite需要識別perl語言的正則表達式)
PS:openssl:對網站遠程訪問進行加密
提前條件:如果系統沒有安裝兼容程序庫、開發工具的,請安裝一下基礎依賴包
yum install gcc gcc-c++ automake autoconf -y
1. 解壓到當前目錄nginx-1.12.2.tar.gz
tar xf nginx-1.12.2.tar.gz
2. 進入nginx-1.12.2目錄
cd nginx-1.12.2/
3. 創建www虛擬用戶
PS:讓www用戶專門管理nginx服務,root權限太大,不安全
useradd -M -s /sbin/nologin www
3. 指定安裝路徑,配置參數(下面有參數解釋)
./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
4. 編譯(翻譯)
PS:編譯過程實質是將各種程序語言轉換為系統可以識別的二進制信息
make
5. 編譯安裝
make install
6. 創建程序目錄軟連接
PS:避免版本經常變化,到時候只需更改軟連接,不需要更改代碼程序
ln -s /application/nginx-1.12.2/ /application/nginx
7. 啟動網站服務
/application/nginx/sbin/nginx
8. 檢查服務是否啟動成功
ps -ef |grep nginx
9. 測試訪問
lynx 10.0.0.7
curl 10.0.0.7
瀏覽器訪問方式
./configure
--prefix=PATH ——指定軟件程序安裝的路徑信息
--user=USER ——創建一個虛擬用戶,用于管理nginx服務的worker進程
--group=GROUP ——創建一個虛擬用戶組,用于管理nginx服務的worker進程
--with-http_ssl_module ——讓nginx服務可以支持https訪問
--with-http_stub_status_module ——便于監控軟件監視nginx服務運行狀態
以下參數可參考(默認有上面的即可):
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-pcre=../pcre-8.41
--with-zlib=../zlib-1.2.11
/application/nginx/sbin/nginx ——啟動nginx
/application/nginx/sbin/nginx -s reload ——平滑重啟
/application/nginx/sbin/nginx -s stop ——停止服務
/application/nginx/sbin/nginx -t ——配置文件語法檢查
/application/nginx/sbin/nginx -h ——查看參數使用幫助信息
/application/nginx/sbin/nginx -V ——查看軟件編譯安裝配置參數信息
[root@web01 application]# /application/nginx/sbin/nginx -V
nginx version: nginx/1.10.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/application/nginx-1.10.3 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
PS:一般用于查看之前配置nginx的參數
[root@web01 application]# /application/nginx/sbin/nginx -h
nginx version: nginx/1.10.3
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /application/nginx-1.10.3/)
-c filename : set configuration file (default: conf/nginx.conf)
-g directives : set global directives out of configuration file
1.軟件依賴包未正確安裝問題---PCRE依賴包沒有安裝
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
解決方法:yum install pcre pcre-devel –y
2.軟件依賴包未正確安裝問題---OPENSSL依賴包沒有安裝
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.
解決方法:yum install openssl openssl-devel -y
1. 啟動Nginx時如下報錯“nginx:[emerg]getpwnam(“nginx”)failed”
解答:這是因為沒有對應的Nginx服務用戶,執行useradd nginx -s /sbin/nologin -M創建
ls -l /application/nginx/
drwxr-xr-x 2 root root 4096 Sep 8 21:22 conf ---配置文件保存目錄
drwxr-xr-x 2 root root 4096 Sep 8 21:22 html ---站點目錄
drwxr-xr-x 2 root root 4096 Sep 8 21:52 logs ---nginx服務相關日志文件保存目錄(錯誤日志 訪問日志)
drwxr-xr-x 2 root root 4096 Sep 8 21:22 sbin ---服務命令保存目錄(只有一個nginx命令文件)
mime.types ——媒體資源類型文件
nginx.conf ——nginx服務主配置文件
nginx.conf.default ——nginx服務主配置文件的默認配置(模板)
PS: vimdiff nginx.conf nginx.conf.default ——可以比較倆個文件之間的區別(實用性廣泛)
grep -Ev "#|^$" nginx.conf.default > nginx.conf
PS:過濾掉包含#號的行,和空行
cp nginx.conf {,.bak}
vim /application/nginx/conf/nginx.conf
worker_processes 1; ——worker主進程數(相當于服務員)進程數越多效率越高
events { ——事件區塊開始
worker_connections 1024; ——每個主進程的最大連接數(想當于客戶)
} ——事件區塊結束
http { ——http區塊開始
include mime.types; ——支持的媒體類型文件
default_type application/octet-stream; ——默認支持的媒體類型文件
sendfile on; ——高效傳輸模式(基于磁盤block傳輸方式,要快許多)
keepalive_timeout 65; ——連接超時(65s內沒有數據傳輸即斷開)
server { ——第一個server區塊(就是一個網站(虛擬主機),可以有多個)
listen 80; ——監聽端口
server_name www.georgekai.com; ——提供服務的域名
location / { ——第一個location(管理部分網站資源文件)
root html/www; ——站點根目錄(存放首頁文件、圖片...)
index georgekai.html index.htm; ——網站默認首頁文件(空格分割多個文件)
} ——第一個server區塊結束
error_page 500 502 503 504 404 /kai.jpg; ——對應的http狀態碼,使用kai.jpg回應客戶
location = /kai.jpg { ——第二個server區塊...(第二個網站(虛擬主機))
root html; .......同上........
}
}
}
1. 創建站點目錄
mkdir /application/nginx/html/www
2. 生成首頁文件(html語言)
vim georgekai.html
<html>
<meta charset="utf-8">
<head>
<title>網站標題</title>
</head>
<body>
網站主體內容
<table border=1>
<tr> <td>01</td> <td>oldboy</td> </tr>
<tr> <td>02</td> <td>oldgril</td> </tr>
<tr> <td>03</td> <td>olddog</td> </tr>
</table>
<a href="http://blog.oldboyedu.com">
<img src="oldboy.jpg" />
</a>
</body>
PS:以上內容是html語言格式,也可隨便寫點內容做測試
/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx -s reload
10.0.0.7
www.georgekai.com
PS:通過域名訪問,需要將以上解析關系添加到本機hosts文件
1. main區塊
2. event區塊
3. http區塊
server區塊(可以有多個),每個server相當于一個網站
location區塊(可以有多個),每個location相當于server的一個模塊
馬上過年了,年假期間不會中斷更新!!!!小伙伴們可以考慮用ansible部署管理Nginx
關注微信公共號:linux運維菜鳥之旅
小伙伴們可以關注我的微信公眾號:linux運維菜鳥之旅
關注“中國電信天津網廳”公眾號,首次綁定可免費領2G流量,為你的學習提供流量!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。