• 嵌入式开发之linuxweb 服务器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 使用消息队列实现分布式事务-公认较为理想的分布式事务解决方案

  • 相关阅读:
    oracle 用户 权限
    oracle move 释放 表空间
    oracle 视图 参数
    js 、c# 编码解码
    Oracle实体化视图
    简单工厂VS工厂方法
    面向对象——(9)封装和接口
    写给明天的软件工程师——(转)
    设计模式简介
    设计模式的六大原则
  • 原文地址:https://www.cnblogs.com/pengkunfan/p/16159046.html
Copyright © 2020-2023  润新知