Nginx基礎(chǔ)

常用的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.配置域名解析
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容