当前位置: 首页 > news >正文

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_module
ngx_http_limit_conn_module:主要用于设置用户并发连接数,一般用于服务器流量异常、负载过大,甚至是大流量的恶意攻击访问等场景。
ngx_http_limit_req_module:主要用于单个ip限流,限制单个ip的请求数,一般用于防止应用层的dos攻击,也可以被限制黑名单方式代替

ngx_http_limit_req_module来实现
http {
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

server {
location / {
limit_req zone=mylimit;
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
如果配置无效,命令将指出配置文件中的错误。

http://www.jsqmd.com/news/1120979/

相关文章:

  • 【Java课程设计/毕业设计】基于 SpringBoot 的数字科技风险报告管理系统的设计与实现智能化科技风险报告编制与溯源管理系统【附源码、数据库、万字文档】
  • 5分钟掌握163MusicLyrics:让每首歌都有完美歌词的终极解决方案
  • 从0到1打造终端工作流:gh_mirrors/do/dotfiles-archive的插件与主题安装教程
  • JoyAI-Image-Edit-Plus参数优化指南:30步出图+CFG=4.0,效果提升300%的秘密
  • Tabled API集成指南:如何将表格提取功能嵌入到你的应用中
  • Micro Journal Rev.7电子墨水屏版本:护眼写作的革命性突破
  • 融云「北极星」数据监控平台:数据可视通晓全局,精准分析定位问题
  • Auto Playwright:用自然语言驱动AI自动化测试,提升测试效率与健壮性
  • Instatic媒体批量上传:拖放功能与进度监控的终极指南
  • Android Debug Bridge (ADB) v1.0.41
  • 协议之RTCP介绍
  • readpe高级用法:CSV/XML/HTML输出格式定制与自动化分析技巧
  • postcss-write-svg与构建工具集成:Gulp/Grunt/PostCSS配置教程
  • Windows Research Kernel (WRK) 本地过程调用(LPC):Windows进程间通信的内核实现
  • 陶瓷基板在PCB设计中的核心价值与应用解析
  • Moodle完全指南:如何用3步创建您的第一个在线课程?
  • SC PV PVC volume svc的定义和区别
  • Node.js应用安全防护:从SQL注入与XSS攻击原理到实战防御体系构建
  • 3个颠覆性方法解决Iwara视频下载难题:让你的收藏效率提升500%
  • 3分钟掌握猫抓Cat-Catch:网页视频音频资源一键捕获终极指南
  • 【免费下载】 JHenTai 漫画阅读器开源项目教程
  • 开源Unity替代引擎Prowl:从痛点分析到完整解决方案
  • 炉石传说HsMod插件:让游戏体验焕然一新的55个实用功能
  • C语言内存编址
  • Ubuntu遭DDoS攻击事件剖析:漏洞修复受阻与基础设施韧性思考
  • Mermaid Live Editor:告别拖拽,用代码思维重塑图表创作体验
  • HsMod:基于BepInEx的炉石传说终极增强插件完全指南
  • Runbook:革命性Ruby自动化框架 - 10分钟快速上手指南
  • ClusterIP、NodePort、LoadBalancer 和 ExternalName
  • StatefulLayout核心API解析:showLoading/showEmpty/showError等方法全攻略