嵌入式開發之linux---web 服務器Nginx 詳解


 

 

 

 

 

 

 

 

 

 

 

 

 

1,nginx的下載 http://nginx.org/en/download.html

 

選擇第二個穩定版下載即可,下載好后解壓得到如下目錄

 

其中最主要的配置文件nginx.conf在conf文件夾中

簡單介紹下幾個nginx命令

start nginx 啟動nginx
nginx -s reload :修改配置后重新加載生效
nginx -s reopen :重新打開日志文件
nginx -t -c /path/to/nginx.conf 測試nginx配置文件是否正確

關閉nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx

 

啟動nginx,配置nginx.conf配置文件

 

本文采用自定義conf配置文件然后用命令include內嵌到nginx.conf的方式 自定義配置文件名字是fapiao.conf

以下為配置內容

#實際的服務器列表,負載均衡,默認采用輪詢,可添加多個server
upstream fapiao{undefined

#負載均衡分發策略默認為輪詢,策略比較多不一一介紹,只介紹ip_hash,每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session共享的問題(直接用以下方式添加分發策略即可)

ip_hash;
server 127.0.0.1:8080;

#負載均衡可直接在下方加ip:端口號,如下

#server 192.168.1.116:8182;
}

server{undefined
#監聽端口
listen 80;
#監聽域名
server_name fp.zzfapiao.com;

#首頁
index index.html

#編碼格式
charset utf-8;

#靜態文件配置(以.jpg,.gif等后綴結尾的請求由nginx自己處理訪問此靜態目錄中文件,可以是實際項目中的靜態文件存放的目錄)
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html)$ {undefined
root C:/d/nginx/nginx-1.16.0/static/photo;
#過期30天
expires 30d;
}

#項目中的靜態文件由nginx管理
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html|xml)$ {undefined
#root C:\gongzuobusiness\ims05\ims\WebRoot;
#過期30天
#expires 30d;
#}

#反向代理跳轉的服務器
location / {
#location /v1/online {undefined
#代理跳轉的路徑,此處用的upstream的name,location后面設置映射的路徑
proxy_pass http://fapiao/;

#Proxy Settings 代理參數的配置
proxy_redirect off;

#小知識點,以下如果配置$host,會導致轉發的服務器只能獲取80端口號,如何想獲取代理的端口號可以改為$host:$server_port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
#禁止訪問 .htxxx 文件
location ~ /\.ht {undefined
deny all;
}

#錯誤處理頁面(可選擇性配置)
#error_page 404 /404.html;
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {undefined
# root html;
#}
}

配置hosts文件,解析域名fp.zzfapiao.com hosts文件位置C:\Windows\System32\drivers\etc

 

 

引入配置文件到nginx.conf中

 

重啟nginx

瀏覽器訪問路徑http://fp.zzfapiao.com 會挑戰到本地http://localhost:8080

訪問靜態目錄http://fp.zzfapiao.com/js/003.jpg 訪問成功

靜態目錄存放位置

 

此文只是對nginx做了下簡單入門!!!

==================================================================

Nginx/Lua/ngx_lua簡介

Nginx優點

1) Nginx:一個主進程多個工作進程的工作模式,每個進程是單線程來處理多個連接,每個工作進程采用了非阻塞I/O來處理多個連接,能減少了線程上下文切換,實現了公認的高性能、高並發;

2) 在生產環境中,通過把CPU綁定給Nginx工作進程來提升其性能;

3) 單線程工作模式典型特點是內存占用非常少;

4) Nginx更改配置重啟速度非常快,可以毫秒級,且支持不停止Nginx進行升級Nginx版本、動態重載Nginx配置;

5) Nginx模塊多,功能強大,可以作為Http負載均衡、TCP負載金恆、內容緩存、Web服務器、反向代理、訪問控制等。

Lua優點

1) Lua:輕量級、可嵌入式腳本語言,可以非常容易的嵌入到其他語言中使用。

2) Lua提供協程並發,以同步調用的方式進行異步執行,從而實現並發,比回掉機制的並發代碼更容易編寫、理解、排查問題;

3) Lua提供閉包機制,函數可作為First Class Value進行參數傳遞,並實現了標記清楚垃圾收集

4) Lua的小巧輕量級,使其可以在Nginx中嵌入Lua VM,請求時創建一個VM,請求結束的時候回收VM

Ngx_lua簡介

1) Ngx_lua是Nginx的一個模塊,將Lua嵌入到Nginx中,可實現用Lua編寫腳本,將Lua編寫的應用腳本,部署到Nginx中運行,將Nginx變成一個Web容器,從而開發人員可以使用Lua語言開發高性能的Web應用。

2) Ngx_lua提供與Nginx交互的很多API,學習API就可以進行功能開發,其開發與Servlet類似,主要是接受請求、參數解析、功能處理、返回響應等。

 

Nginx+Lua安裝詳解

平台:ARM服務器

操作系統:CentOS 7.3/CentOS 7.4

軟件安裝:Nginx + LuaJit + nginx-lua安裝

1、 安裝所需依賴

yum -y install gcc gcc-c++ autoconf automake

yum install pcre

yum install pcre-devel

yum install openssl openssl-devel

yum -y install zlib zlib-devel

備注:

pcre是一個Perl庫,包括perl兼容的正則表達式庫。Nginx的HTTP rewrite模塊依賴PCRE。

OpenSSL是安全套接字層密碼庫,包括主要密碼算法、常用的秘鑰和整數封裝管理功能及SSL協議,並提供豐富的應用程序共測試或其他目的使用。

LuaJIT是Lua運行環境,即采用C語言寫的Lua代碼的解釋器

2、 下載並安裝LuaJit-2.1.0-beta2

1)下載

https://github.com/cbaylis/luajit-aarch64/tree/aarch64-v2.1-new

備注:此處需下載ARM平台的LuaJit,否則在啟動Nginx服務器時,程序會coredump。

2)解壓

unzip luajit-aarch64-aarch64-v2.1-new.zip

3)安裝

cd luajit-aarch64-aarch64-v2.1-new/

make PREFIX=/usr/local/luajit

make install PREFIX=/usr/local/luajit

4)建立軟件連

ln -sf luajit-2.1.0-beta2/usr/local/luajit/bin/luajit

5)導出系統環境變量

exportLUAJIT_LIB=/usr/local/luajit/lib

exportLUAJIT_INC=/usr/local/luajit/include/luajit-2.1

6)建立軟連接

ln -s/usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

7)將libluajit動態庫讀入緩存中

在/etc/ld.so.conf中加入對應路徑:

/usr/local/luajit/lib/

執行ldconfig即可。

3、 下載並解壓ngx_devel_kit-0.2.19

1) 下載

https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz

2) 解壓

tar zxvf ngx_devel_kit-0.2.19

4、 下載並解壓lua-nginx-module-0.10.8

1) 下載

https://github.com/openresty/lua-nginx-module/tags

2) 解壓

tar -zxvf lua-nginx-module-0.10.8.tar.gz

5、 下載並安裝Nginx,ngx_devel_kit-0.2.19,lua-nginx-module-0.10.8

1) 下載nginx-1.10.3.tar.gz

http://nginx.org/en/download.html

2) 解壓

tar -zxvf nginx-1.10.3.tar.gz

3) 配置

./configure --add-module=../ngx_devel_kit-0.2.19/--add-module=../lua-nginx-module-0.10.8/

注意:要正確配置ngx_devel_kit-0.2.19和lua-nginx-module-0.10.8對應的路徑

4) 編譯

make -j

5) 安裝

make install

6、 測試nginx + lua的搭建是否成功

1) 在/usr/local/nginx/conf的nginx.conf中添加如下信息:

location ~* ^/2328(/.*) {undefined

default_type 'text/plain';

content_by_lua'ngx.say("hello, ttlsa lua")';

}

2) 在/usr/local/nginx/sbin目錄下啟動nginx服務

cd /usr/local/nginx/sbin

nginx

3) 在瀏覽器中范圍對應的網頁測試即可

登錄:http://**.*.***.***/2328/

訪問成功,顯示:hello, ttlsa lua

7、 查看啟動的nginx服務

ps -ef | grep nginx
===========================================================

 

 

https://blog.csdn.net/qq_40036754/article/details/102463099 nginx學習,看這一篇就夠了:下載、安裝。使用:正向代理、反向代理、負載均衡。常用命令和配置文件,很全

https://www.nginx.cn/4996.html  如何使用nginx配置負載均衡

http://hg.nginx.org/nginx/file/release-1.21.6

https://nginx.org/en/download.html

https://trac.nginx.org/nginx/browser?order=name source 下載

https://blog.csdn.net/bbenben08/article/details/96964069 nginx交叉編譯

https://blog.csdn.net/fish43237/article/details/40515897 nginx 交叉編譯 ( 上 )

 

https://www.cnblogs.com/schips/p/12308651.html arm linux 移植 Nginx

https://www.csdn.net/tags/MtjacgwsODc0NTQtYmxvZwO0O0OO0O0O.html nginx移植到arm-linux

https://www.itdaan.com/blog/2017/11/02/b82deea3db281fb4344d1b50912d77a9.html 嵌入式hi3516-hi3518海思平台移植nginx-1.12.2

https://www.jianshu.com/p/5d9b60f7b262 交叉編譯Hi3536上面使用的nginx

https://blog.csdn.net/yzhang6_10/article/details/79890685 ARM平台Nginx+Lua安裝詳解

https://www.cnblogs.com/fengkun125/p/14142912.html ubuntu安裝nginx

https://blog.csdn.net/zuoyigehaizei/article/details/93061002 nginx下載安裝,以及簡單配置

https://bbs.huaweicloud.com/blogs/321018 (麒麟V10-arm)編譯安裝nginx-1.20.1

https://juejin.cn/post/6844904096973979662 手把手教 Nginx 部署 Vue 項目

https://blog.csdn.net/yuanyuan320/article/details/121466863 移植Nginx到ARM Linux

 

 

https://github.com/y123456yz/reading-code-of-nginx-1.9.2 reading-code-of-nginx-1.9.2

https://www.cnblogs.com/taiyonghai/p/6094350.html 使用消息隊列實現分布式事務-公認較為理想的分布式事務解決方案


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM