当前位置:AIGC资讯 > AIGC > 正文

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:配置与事件相关的选项,例如连接超时时间和最大连接数。
user  root;
worker_processes  4;

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


events {
  worker_connections  1024;
}
upstream:用于定义反向代理的后端服务器组。可以指定多个服务器,并设置负载均衡算法。
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,在这层还是存在被篡改的情况(渗透测试中曾测出此类问题)
 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相关语法:

更新时间 2024-03-24