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

相关推荐
Dovis(誓平步青云)1 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
csdn_aspnet2 小时前
GitHub Actions自动化运维实战,用CI/CD流水线实现测试、部署、安全扫描一体化
运维·安全·ci/cd·自动化·github
Inhand陈工3 小时前
数据中心UPS无功补偿与智能化监控方案:基于IG502的Modbus RTU转IEC61850实战
运维·人工智能·物联网·信息与通信
qetfw3 小时前
CentOS 7 搭建 LDAP 目录服务
linux·运维·centos
IT方大同5 小时前
linux简介
linux·运维·服务器
Dear~yxy5 小时前
时间同步服务器搭建
运维·服务器
Gem_S_6085 小时前
产品任务流转工具实践:构建需求到交付的全流程协作体系
运维
项目管理与代码5 小时前
基于Webhook+消息队列的自动化项目进度跟踪方案设计
运维·自动化
wbs_scy6 小时前
仿 muduo 高并发服务器项目:实现 LoopThread 与 LoopThreadPool 多线程事件循环
运维·服务器
微道道6 小时前
Linux盒子局域网内使用 .local 域名访问,告别IP变化烦恼
linux·运维·服务器·hermes