nginx配置详解+nginx_lua模块的使用

nginx基本配置详解

目录

nginx基本配置详解

nginx_lua模块使用方式

openresty介绍与安装

lua基本语法使用

全局配置:

  • user:指定Nginx主进程运行的用户。在下方示例中,Nginx将以root用户身份运行。
  • worker_processes:指定Nginx使用的工作进程数量,用于处理并发请求。通常设置为CPU核心数。
  • error_log:定义错误日志的文件路径和级别。可以指定文件路径和日志级别(如error、info、debug)。
  • pid:指定Nginx主进程的 PID 文件路径。
  • events:配置与事件相关的选项,例如连接超时时间和最大连接数。
bash 复制代码
user  root;
worker_processes  4;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
  worker_connections  1024;
}
  • upstream:用于定义反向代理的后端服务器组。可以指定多个服务器,并设置负载均衡算法。
bash 复制代码
upstream gateway {
    server 127.0.0.1:81;
    #server 172.2.3.81;
    #server 172.2.3.82;
  }
  • http:定义HTTP服务器的全局配置。以下是一些常见的http配置选项
    • server:定义一个虚拟主机。可以在该块内配置监听端口、域名、SSL证书等。
      • listen 设置服务器监听的端口号和 SSL 加密
      • ssl on 这个配置与在listen中配置ssl效果一致,在高版本的nginx中已不支持ssl on 的配置(测试版本1.25.3)高版本中默认是开启的,但是测试貌似不太行,建议直接加在listen端口后。
    • location:匹配请求的URI,并定义对应的处理规则,例如代理到后端服务器、重定向等。
      • proxy_pass:将请求代理转发给指定服务器地址。
      • deng all:限制访问。
      • rewrite:重写url。
      • proxy_set_header:
        • Host、X-Real-IP、X-Forwarded-ForX 配置主要作用为方式ip篡改,这里proxy_add_x_forwarded_for建议也修改成remote_addr,在这层还是存在被篡改的情况(渗透测试中曾测出此类问题)
bash 复制代码
 server {
    server_name  web;
    root         /usr/html; // 指定服务器的根目录
    listen    443 ssl;
    # ssl on;
    ssl_certificate         /home/server.crt; // 指定 SSL 证书
    ssl_certificate_key     /home/server.key; // 指定 SSL 私钥
    ssl_dhparam /home/cdos.pem; // 指定 DH 参数的路径

    location ~ .*actuator.* {
        deny all;
    }

    location ^~ /api {
      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_read_timeout 720;
      proxy_send_timeout 720;
      proxy_connect_timeout 720;
      fastcgi_connect_timeout 1800s;
      fastcgi_send_timeout 1800s;
      fastcgi_read_timeout 1800s;
      proxy_buffering off;
      rewrite ^/api/(.*)$ /$1 break;
      proxy_pass https://gateway;
      client_max_body_size 5000M;
    }
}
  • openresty介绍与使用

    • OpenResty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,许多高质量的第三方Nginx模块以及大多数外部依赖项,本身OpenResty内部就已经集成了Nginx和Lua,所以我们使用起来会更加方便。(这部分直接使用nginx集成lua也是可以的,需要下载LuaJIT相关包 然后重新编一下nginx,中间过程比较复杂有几个坑得趟一下 建议直接使用OpenResty)

    • 下载OpenResty:OpenResty - Download

    • 使用wget下载: wget https://openresty.org/download/openresty-1.15.8.2.tar.gz

    • 解压缩: tar -zxf openresty-1.15.8.2.tar.gz

    • 进入OpenResty目录: cd openresty-1.15.8.2

    • 执行命令:./configure

    • 执行命令:make && make install

    • 进入OpenResty的目录,找到nginx:cd /usr/local/openresty/nginx/

    • 在conf目录下的nginx.conf添加lua相关语法块

    • location /lua{

    • default_type 'text/html';

    • content_by_lua 'ngx.say("<h1>HELLO,OpenRestry</h1>")';

    • }

    • 启动nginx测试

  • lua相关语法:

相关推荐
SelectDB9 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220702 天前
如何搭建本地yum源(上)
运维
ping某4 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质5 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工5 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化