nginx模块以及反向代理配置

📅 2026/7/4 9:46:44
nginx模块以及反向代理配置
一、nginx限制IP通过ngx_http_access_module模块来限制特定IP访问location / {deny 192.168.1.1; # 阻止这个IP地址allow all; # 允许所有其他IP地址}二、 nginx重定向通过rewrite或return进行重定向rewrite ^/(.*) http://www.newsite.com/$1 redirect;301重定向server {listen 80;server_name example.com;location / {return 301 http://www.newsite.com$request_uri;}}302重定向server {listen 80;server_name example.com;location / {return 302 http://www.newsite.com$request_uri;}}三、nginx限流用户访问服务器的请求数或连接数做限制ngx_http_limit_conn_module及ngx_http_limit_req_modulengx_http_limit_conn_module主要用于设置用户并发连接数一般用于服务器流量异常、负载过大甚至是大流量的恶意攻击访问等场景。ngx_http_limit_req_module主要用于单个ip限流限制单个ip的请求数一般用于防止应用层的dos攻击也可以被限制黑名单方式代替ngx_http_limit_req_module来实现http {limit_req_zone $binary_remote_addr zonemylimit:10m rate1r/s;server {location / {limit_req zonemylimit;proxy_pass http://my_upstream;}}}四、反向代理在Nginx中配置反向代理的基本步骤如下打开Nginx配置文件通常是nginx.conf或者位于/etc/nginx/conf.d/目录下的某个.conf文件。在http块中使用server块定义监听端口和接收的请求。在server块内部使用location块来定义反向代理的行为并指定要代理的上游服务器。下面是一个简单的反向代理配置示例upstream backend { server 192.168.1.10:8000; server 192.168.1.11:8000 backup; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; 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_set_header X-Forwarded-Proto $scheme; } error_page 500 502 503 504 /50x.html; location /50x.html { root /usr/share/nginx/html; } }listen 80;指定 Nginx 监听的端口。server_name example.com;指定这个配置针对的域名。location / { ... }指定匹配路径 / 的请求将被代理到 192.168.1.10:8000。proxy_pass http://192.168.1.10:8000;设置代理目标地址。proxy_set_header设置代理请求头以传递客户端信息给后端服务器。error_page指定错误页面的处理。upstream 定义了一个名为 backend 的上游组包含两个服务器其中 192.168.1.11:8000 作为备用服务器。重新加载 Nginx 配置保存配置文件后需要重新加载 Nginx 以使新的配置生效sudo systemctl reload nginx如果遇到配置错误可以使用以下命令检查配置文件的有效性sudo nginx -t如果配置文件有效上述命令将显示类似以下的输出nginx: configuration file /etc/nginx/nginx.conf test is successful如果配置无效命令将指出配置文件中的错误。