Nginx與LUA(1)

2023-01-10 18:23:43 來源:51CTO博客

您好,我是湘王,這是我的51CTO博客,歡迎您來,歡迎您再來~


HTTP服務器是相對于HTTP客戶端來說的——HTTP客戶端就是各種常用的「瀏覽器」,如IE、chrome、微信瀏覽器。


(資料圖片)

當瀏覽器通過URL地址欄訪問一個Web頁面時,會發送一連串請求,或者說HTTP服務器能懂的「語言」,告訴自己需要什么。

HTTP服務器通過解析「請求頭」,或者通過靜態頁面給出內容,或者將客戶端需要的內容通過編程語言「計算」出來,然后再返回給瀏覽器。

HTTP協議只是龐大的TCP/IP協議簇的一部分,HTTP服務器一般情況下是泛指解析包括HTTP協議在內的各種協議的Web服務器,如郵件、文件、DNS等。

如果沒特別說明,HTTP服務器和Web服務器通常是一個概念。

那什么是Web容器呢?

C#服務端用的IIS、PHP服務端用的Apache和Java服務端用的Tomcat都屬于Web服務器的范疇。但這里面又有不同——

Apache是純粹的Web服務器,而IIS和Tomcat除了要解析HTTP協議內容之外,還需要處理諸如靜態資源、解釋/執行JSP/ASP頁面標簽、組件生命周期等更「專業」的內容。

所以在HTTP服務器/Web服務器之上,把處理這些專業內容的服務稱為「容器」。

如果包括更為專業的「服務」,如事務管理、數據庫連接池、Bean注入等,則稱為「應用服務器」。

綜上所述:HTTP/Web服務器 < 容器 < 應用服務器

那什么又是代理呢?

官方的描述:Nginx是一個輕量級、高性能的HTTP和反向代理服務器,同時也提供IMAP/POP3/SMTP這類常見郵件服務。

輕量級、高性能、單線程、非阻塞異步工作模型,最大限度利用Linux本身提供的epoll多路復用技術,配置簡單靈活,模塊化結構,資源占有率低且利用率高。

說反向代理,就不得不說正向代理。正向代理位于客戶端與目標服務器之間,向客戶端隱蔽了具體的請求細節,向目標服務器隱蔽了客戶端身份,并在二者之間傳輸/轉發信息。

因此,Nginx的主要作用也就包括了:

1、作為HTTP/郵件服務器

2、作為反向代理服務器

3、作為負載均衡服務器

安裝Nginx:

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel

yum install -y openssl openssl-devel

cd ~

wget -c https://nginx.org/download/nginx-1.18.0.tar.gz

tar -zxvf nginx-1.18.0.tar.gz

cd nginx-1.18.0

./configure

make && make install

默認安裝到/usr/local/nginx/目錄

啟動:

cd /usr/local/nginx/sbin/

./nginx# 啟動

./nginx -s stop# 停止

./nginx -s quit# 退出停止

./nginx -s reload# 重新加載配置文件

開機自啟動:

vi /etc/rc.local

增加一行

cd /etc

chmod 755 rc.local

安裝好Nginx之后,如果看到這個頁面就說明安裝成功:

當只有靜態資源的時候,也可以用Nginx來做服務器:

cd /home/work

mkdir www

vi index.html

重新寫一個新的index文件

修改/usr/local/nginx/conf/nginx.conf文件

將#user nobody;改為user root;

location / {

root html;

index index.html index.htm;

}

改為

location / {

root /home/work/www;

index index.html index.htm;

}

重新加載Nginx:

cd /usr/local/nginx/sbin/

./nginx -s reload

查看結果:

Nginx實現動靜分離也非常簡單:根據一定規則把不變的資源和經常變的資源區分開來,就可以根據靜態資源的特點將其做緩存或者CDN操作,這就是網站靜態化處理的核心思路。

增加新的location:

重新加載Nginx:

cd /usr/local/nginx/sbin/

./nginx -s reload

拷貝一幅圖片到/home/work/www目錄

訪問圖片的路徑:http://服務器/name.jpeg

和圖片類似,css、js等文件都可以這樣處理

Nginx最拿手的本事就是反向代理。以Java應用為例,一般都是以8080端口為入口,但如果想改為80端口,就可以用Nginx來「代理」。修改nginx.conf:

server {

listen 80;

server_name localhost;

client_max_body_size 1024M;

location / {

proxy_pass http://localhost:8080;

proxy_set_header Host $host:$server_port;

}

}

編寫一個簡單的Java應用部署并測試。使用帶端口的地址(Tomcat):

??http://172.16.185.136:8080/api/v1.0.0/system/test?username=xiangwang??

或者不帶端口的地址(Nginx):

??http://172.16.185.136/api/v1.0.0/system/test?username=xiangwang??

都能成功訪問。


?

感謝您的大駕光臨!咨詢技術、產品、運營和管理相關問題,請關注后留言。歡迎騷擾,不勝榮幸~

標簽: 應用服務器 反向代理 代理服務器

上一篇:當前資訊!服務案例 SQL Server數據庫反復重啟問題
下一篇:c語言模擬用戶輸入三次密碼并判斷是否正確