nginx基本配置详解
目录
全局配置:
- 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,在这层还是存在被篡改的情况(渗透测试中曾测出此类问题)
- server:定义一个虚拟主机。可以在该块内配置监听端口、域名、SSL证书等。
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相关语法: