好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > nginx+lua單機上萬并發的實現

nginx+lua單機上萬并發的實現

熱門標簽:10086外包用的什么外呼系統 打400電話怎么辦理收費 上海申請高400開頭的電話 福州企業電銷機器人排名 400電話辦理介紹信 河南防封號電銷機器人是什么 宿城區電話機器人找哪家 怎么找到沒有地圖標注的店 麗江真人語音電話外呼系統

nginx是我們最常用的服務器,常用于做內容分發和反向代理,lua是一種類C的腳本語言,廣泛應用于游戲行業,十年前頁游流行的時候,我曾經買過傳奇類游戲的源碼,游戲中的服務端就是用lua實現的。我們常用來配合nginx、envoy和redis做一些簡單實用的功能,比如:超賣和少賣、排行榜等,減少請求到達后端java的頻率

下面開始構建nginx+lua的鏡像,自己構建的原因是怕別人提供的鏡像里有病毒,docker非官方鏡像中有很多病毒,這一點大家需要注意

本文采用openresty版本的nginx,具體openresty、nginx和lua的說明大家可以百度一下

構建鏡像之前需要先準備好nginx-module-vts模塊和openresty-1.15.8.3的壓縮包,這兩個壓縮包百度一下就能找到,我也不知道公眾號文章能不能插外鏈,其中nginx-module-vts這個模塊的作用是統計nginx的訪問數據,如果自己用prometheus+grafana監控nginx,就需要安裝這個模塊,我們索性一起編譯進來

在服務器上創建目錄

cd /usr/local/docker
mkdir -p nginx-lua/build
cd nginx-lua

搭建好之后的完整目錄如下:

root@today2:/usr/local/docker/nginx-lua# tree
.
├── build
│   ├── Dockerfile
│   ├── nginx-module-vts.zip
│   └── openresty-1.15.8.3.tar.gz
├── docker-compose.yml
├── lua
│   ├── test.lua
├── nginx.conf
├── wwwroot
│   ├── index.html

Dockerfile

Dockerfile文件放到build目錄下,把下載好的nginx-module-vts.zip和openresty-1.15.8.3.tar.gz也放到build目錄下

FROM ubuntu:xenial

# 更新數據源
WORKDIR /etc/apt
RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse' > sources.list
RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse' >> sources.list
RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse' >> sources.list
RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse' >> sources.list
RUN apt-get update

# 安裝依賴
RUN apt-get install unzip make gcc libpcre3-dev libssl-dev perl build-essential curl zlib1g-dev --assume-yes

# 復制工具包
ADD openresty-1.15.8.3.tar.gz /usr/local/src
ADD nginx-module-vts.zip /usr/local/src

# nginx-module-vts
WORKDIR /usr/local/src
RUN unzip nginx-module-vts.zip

WORKDIR /usr/local/src/openresty-1.15.8.3
RUN rm -rf ./Makefile
RUN ./configure --add-module=/usr/local/src/nginx-module-vts
RUN make && make install

# 配置 Nginx,注釋掉,在啟動容器時掛載到容器中
# ADD nginx.conf /usr/local/openresty/nginx/conf/

WORKDIR /
EXPOSE 80
CMD ["/usr/local/openresty/nginx/sbin/nginx", "-c", "/usr/local/openresty/nginx/conf/nginx.conf", "-g", "daemon off;"]

nginx.conf

user root;
worker_processes  auto;

worker_rlimit_nofile 65535;

events {
 worker_connections  102400;
 use epoll;
}

http {
 server_tokens off;
 include mime.types;
 default_type application/octet-stream;

 #access_log /var/log/nginx/access.log;
 access_log off;
 error_log /var/log/nginx/error.log;

 keepalive_timeout  65;
 client_max_body_size 10m;
 
 gzip on;
 gzip_disable "msie6";
 gzip_min_length 1000;
 gzip_proxied expired no-cache no-store private auth;
 gzip_types text/plain application/xml application/javascript text/css application/x-javascript;

 # 下面3行是安裝了nginx-module-vts模塊后設置nginx流量統計,本文主要講lua,所以下面3行可以注釋掉
 vhost_traffic_status_zone;
 vhost_traffic_status_filter_by_host on;
 vhost_traffic_status_filter_by_set_key $uri uri::$server_name;

 server {
  listen 80;
  root /usr/share/nginx/html;

  # lua腳本是否開啟緩存,在調試階段設為off(修改lua文件后不用重啟nginx),在正式環境一定要注釋掉這一行,以提高性能
  lua_code_cache off;

  # 這個location是真正調用lua腳本的設置
  location /lua/test {
   # 指定返回的類型是json
   default_type 'application/json';
   # 指定訪問/lua/test時由test.lua來返回內容,這個路徑需要注意是容器中的路徑,千萬不要和宿主機搞混淆了
   content_by_lua_file '/usr/local/lua/test.lua';
  }

  # 也是流量統計,可以注釋掉
  location /status {
   vhost_traffic_status_display;
   vhost_traffic_status_display_format html;
  }

 }
}

docker-compose.yml

version: '3.1'
services:
  nginx:
    build: build # 左邊build指的是當前容器需要構建鏡像,右邊build表示構建鏡像的文件在build這個目錄下
    restart: always
    container_name: nginx
    network_mode: host # 不一定非要指定host模式,這里只是為了方便
    volumes:
      - ./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf
      - ./log:/var/log/nginx/
      - ./wwwroot:/usr/share/nginx/html
      - ./lua:/usr/local/lua

test.lua

在./lua目錄下創建test.lua文件

ngx.say('{"code": 1, "msg": "hello world!"}')

啟動容器后,訪問IP:80/lua/test就可以看到輸出了{"code": 1, "msg": "hello world!"},說明lua腳本已經生效

至此nginx+lua已經搭建完畢,在以后的文章中會再介紹一些常用的lua腳本,如:JWT驗證、操作Redis、消息隊列等,可以實現很多功能,只要你能想到都可以實現

到此這篇關于nginx+lua單機上萬并發的實現的文章就介紹到這了,更多相關nginx lua單機并發內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:朝陽 隴南 雞西 荊門 遵義 面試通知 連云港 運城

巨人網絡通訊聲明:本文標題《nginx+lua單機上萬并發的實現》,本文關鍵詞  nginx+lua,單機,上萬,并發,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《nginx+lua單機上萬并發的實現》相關的同類信息!
  • 本頁收集關于nginx+lua單機上萬并發的實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产精品bdsm在线调教| 国产精品扒开腿做爽爽的漫画男男| 成人欧美一区二区三区白人| 穿越做共妻被肉到哭H| 女生把胸罩解开揉自己的胸| 舒服快点…再深一点小说| 色小说视频| 国产区黄A片精品视频大未来新| 男人伸进女人下面桶| 国产午夜免费福利红片| 穿越香江收集女明星的小说推荐| 中国女人内谢69xxxx| 91精品人妖一区二区三区四区 | 大团圆结1一39全文阅读| 动漫美女吸乳羞羞网站| 国产精品波多野结衣| 调教贵妇校长慧奴| 欧美AV无码成人精品区软件 | 巨肉黄暴辣文高h文奶汁快穿| 娇妻嗯啊黑壮汉好猛h| **性色生活片毛片| black欧美金发大战黑人| 久久精品国产99国产精2020丨| 无人区视频免费网| 久久99热狠狠色AV蜜臀| 女人日批视频| 欧美肥妇BwBWBWBXx小说| 谷原希美在线播放友人| 免费观看无遮挡黄漫漫画| 在线播放网站| 日本级婬片A片AAA毛片炙热| 国精产品一区一区三区探花| 国产精品a一级毛片999444| 沉迷舂药精油按摩电影| 深夜啪啪网站| 国产一级大片免费看| 国产chaopeng视频在线| 青青青国产依人精品视频| 嗯啊老师不要| 美女抓胸乳摇爆衣动态图| 91香蕉成人app无限观看|