常用的WEB服務(wù)器
說Nginx之前要先說一下常見的WEB服務(wù)器,WEB服務(wù)器也稱為WWW服務(wù)器、HTTP服務(wù)器,其主要功能是提供網(wǎng)上信息瀏覽服務(wù)。Unix和Linux平臺下常用的服務(wù)器有Apache、Nginx、Lighttpd、Tomcat、IBM WebSphere等,其中應(yīng)用最廣泛的是Apache。而Window NT/2000/2003平臺下最常用的服務(wù)器是微軟公司的IIS。
1、Apache是世界上應(yīng)用最多的WEB服務(wù)器,優(yōu)勢主要在于源代碼開放、有一支開放的開發(fā)隊伍、支持跨平臺應(yīng)用以及其可移植性等。Apache的模塊支持非常豐富,雖在速度和性能上不及其他輕量級WEB服務(wù)器,是屬于重量級產(chǎn)品,所消耗的內(nèi)存也比其他WEB服務(wù)器要高。
2、Lighttpd是提供一個專門針對高性能網(wǎng)站,安全、快速、兼容性好并且靈活的WEB Server環(huán)境,它具有內(nèi)存開銷低、CPU占有率低、效能好,以及模塊豐富等特點。支持FastCGI、CGI、Auth、輸出壓縮、URL重寫及Alias等重要功能,屬于輕量級WEB服務(wù)器。
3、Tomcat是一個開放源代碼、運行servlet和JSP Web應(yīng)用軟件的基于Java的web應(yīng)用軟件容器,Tomcat server是根據(jù)servlet和jsp規(guī)范執(zhí)行的,因此也可以說Tomcat server實行了Apache-Jakarta規(guī)范,且比絕大多數(shù)商用應(yīng)用軟件服務(wù)器要好,但是,tomcat對靜態(tài)文件和高并發(fā)的處理比較弱。
4、IBM WebSphere是一種功能完善、開放的WEB應(yīng)用程序服務(wù)器,它基于Java的應(yīng)用環(huán)境,建立、部署和管理Internet和Intranet Web應(yīng)用程序。相對于其他流行的WEB服務(wù)器而言,應(yīng)用的數(shù)量很少。
5、IIS是一種WEB服務(wù)組件,允許在公共Intranet或Internet上發(fā)布信息的WEB服務(wù)器,其中包括WEB服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務(wù)和郵件發(fā)送等方面,它使得在網(wǎng)絡(luò)上發(fā)布信息成了一件很容易的事情。它提供ISAPI作為擴展WEB服務(wù)器功能的編程接口,同時還提供了Internet,可以實現(xiàn)對數(shù)據(jù)庫的查詢和更新。
6、Nginx是一款高性能的HTTP和反向代理服務(wù)器,能夠選擇高效的epoll、kqueue、eventport最為網(wǎng)絡(luò)I/O模型,在高連接并發(fā)的情況下,能夠支持高達5萬個并發(fā)連接數(shù)的響應(yīng),而內(nèi)存、CPU等系統(tǒng)資源消耗卻非常低,運行非常穩(wěn)定。
Nginx與Apache、Lighttpd的綜合對比

image.png
介紹Nginx
Nginx是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發(fā)的,第一個公開版本0.1.0發(fā)布于2004年10月4日。其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。Nginx是一款輕量級的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行。其特點是占有內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。
介紹Nginx應(yīng)用場景
1.代理
2.負(fù)載均衡
3.代理緩存 (proxy_cache)
4.靜態(tài)資源
5.動靜分離
6.Https
Nginx 安裝 配置 啟動
第一種: 源碼安裝
第二種: yum --> 官方倉庫 新 配置容易入手
第三中: yum --> epel倉庫 舊 配置比較復(fù)雜
1.安裝官方倉庫源
[root@web01 ~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
2.使用yum直接安裝
[root@web01 ~]# yum install nginx -y
3.啟動nginx
[root@web01 ~]# systemctl start nginx
Nginx配置了解
[root@web01 ~]# cat /etc/nginx/nginx.conf
user nginx; # nginx進程的用戶身份
worker_processes 1; # nginx的工作進程數(shù)量
error_log /var/log/nginx/error.log warn; # 錯誤日志的路徑 [警告級別才會記錄]
pid /var/run/nginx.pid; # 進程運行后,會產(chǎn)生一個pid
events { # 事件模型
worker_connections 1024; # 每個work能夠支持的連接數(shù)
use epoll; # 使用epoll網(wǎng)絡(luò)模型
}
http { # 接收用戶的http請求
include /etc/nginx/mime.types; # 包含所有靜態(tài)資源的文件
default_type application/octet-stream; # 默認(rèn)類型 (下載)
日志相關(guān)
日志相關(guān)
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 /var/log/nginx/access.log main; # 訪問日志的路徑
#sendfile on;
#tcp_nopush on;
keepalive_timeout 65; #長鏈接超時時間
#gzip on; #啟用壓縮功能
#使用Server配置網(wǎng)站, 每個Server{}代表一個網(wǎng)站
server {
listen 80;
server_name test.oldxu.com;
location / { #控制網(wǎng)站訪問的路徑
root ...;
}
}
include /etc/nginx/conf.d/*.conf; 包含哪些文件
}
PS: Nginx中的http、server、location之間的關(guān)系是?
http?? 標(biāo)簽主要用來解決用戶的請求與響應(yīng)。
server?? 標(biāo)簽主要用來響應(yīng)具體的某一個網(wǎng)站。
location ? 標(biāo)簽主要用于匹配網(wǎng)站具體url路徑。
http{} 層下允許有多個Server{},可以有多個網(wǎng)站.
一個Server{} 下又允許有多個location{} 每個網(wǎng)站的uri路徑不同,所以要分別進行匹配.
Nginx 搭建一個頁游網(wǎng)站
1.注釋掉之前的默認(rèn)網(wǎng)站
[root@web01 html]# cd /etc/nginx/conf.d/
[root@web01 conf.d]# gzip default.conf
2.編寫游戲網(wǎng)站Nginx配置文件
[root@web01 conf.d]# cat game.oldxu.com.conf
server {
listen 80; #該網(wǎng)站提供訪問的端口
server_name game.oldxu.com; #訪問該網(wǎng)站的域名
location / {
root /code;
index index.html;
}
}
3.根據(jù)Nginx的配置文件,初始化
[root@web01 conf.d]# mkdir /code
4.上傳代碼
[root@web01 conf.d]# cd /code/
[root@web01 code]# rz html5.zip
[root@web01 code]# unzip html5.zip
5.檢測語法
[root@web01 code]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
6.重載服務(wù)
[root@web01 code]# systemctl restart nginx
7.配置域名解析