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

相关推荐
GuokLiu1 小时前
250708-Debian系统安装Edge浏览器并配置最小中文输入法
运维·edge·debian
guygg882 小时前
ubuntu手动编译VTK9.3 Generating qmltypes file 失败
linux·运维·ubuntu
先做个垃圾出来………3 小时前
自动化一次通过率
运维·自动化
夕泠爱吃糖3 小时前
Linux中的静态库和动态库
linux·运维·服务器
比奥利奥还傲.4 小时前
Linux运维安全新范式:基于TCPIP与SSH密钥的无密码认证实战
linux·运维·安全
mmsx5 小时前
使用git生成ssh的ed25519密钥
运维·git·ssh
ZeroNews内网穿透6 小时前
服装零售企业跨区域运营难题破解方案
java·大数据·运维·服务器·数据库·tcp/ip·零售
果子⌂6 小时前
容器技术入门之Docker环境部署
linux·运维·docker
神的孩子都在歌唱6 小时前
常见的网络攻击方式及防御措施
运维·服务器·网络
深度学习04077 小时前
【Linux服务器】-安装ftp与sftp服务
linux·运维·服务器