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相关语法:

相关推荐
_.Switch2 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410832 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.2 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
芯盾时代2 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
GDAL2 小时前
lua入门教程:随机数
lua
心灵彼岸-诗和远方3 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘3 小时前
NFS服务器
运维·服务器
苹果醋34 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰4 小时前
[linux]docker基础
linux·运维·docker
Jason-河山5 小时前
【自动化更新,让商品信息跳舞】——利用API返回值的幽默编程之旅
运维·自动化