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

学习路之Nginx--不同域名的反向代理

学习路之Nginx--不同域名的反向代理

  • 一、准备
  • 二、修改配置:增加2个server
  • 三、完成
  • 四、补充

常规反向代码。可参考:https://blog.csdn.net/hopetomorrow/article/details/137798880

一、准备

已在阿里云已解析的可用域名
zzz.85798.net 、 lll.85798.net
这2个域名都是指向47.112.111.11:80
直接浏览器可访问
在这里插入图片描述

在这里插入图片描述

二、修改配置:增加2个server

主要内容:

server
{listen 80;server_name lll.85798.net;root /www/wwwroot/www.pull.com;

根据不同域名转发到不同目录
在这里插入图片描述

在这里插入图片描述

完整配置文件:

server
{listen 80;server_name 47.112.111.11;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/www.gong.com/public;#CERT-APPLY-CHECK--START# 用于SSL证书申请时的文件验证相关配置 -- 请勿删除include /www/server/panel/vhost/nginx/well-known/47.112.111.11.conf;#CERT-APPLY-CHECK--END#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则#error_page 404/404.html;#SSL-END#ERROR-PAGE-START  错误页配置,可以注释、删除或修改#error_page 404 /404.html;#error_page 502 /502.html;#ERROR-PAGE-END#PHP-INFO-START  PHP引用配置,可以注释或修改include enable-php-80.conf;#PHP-INFO-END#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效include /www/server/panel/vhost/rewrite/47.112.111.11.conf;#REWRITE-ENDlocation /hls {types {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /www/rtmp;}#禁止访问的文件或目录location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md){return 404;}#一键申请SSL证书验证目录相关设置location ~ \.well-known{allow all;}#禁止在证书验证目录放入敏感文件if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {return 403;}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires      30d;error_log /dev/null;access_log /dev/null;}location ~ .*\.(js|css)?${expires      12h;error_log /dev/null;access_log /dev/null;}location /gongsi/ {proxy_pass http://47.112.111.11:82/;}access_log  /www/wwwlogs/47.112.111.11.log;error_log  /www/wwwlogs/47.112.111.11.error.log;
}server
{listen 80;server_name lll.85798.net;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/www.pull.com;#CERT-APPLY-CHECK--START# 用于SSL证书申请时的文件验证相关配置 -- 请勿删除include /www/server/panel/vhost/nginx/well-known/47.112.111.11.conf;#CERT-APPLY-CHECK--END#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则#error_page 404/404.html;#SSL-END#ERROR-PAGE-START  错误页配置,可以注释、删除或修改#error_page 404 /404.html;#error_page 502 /502.html;#ERROR-PAGE-END#PHP-INFO-START  PHP引用配置,可以注释或修改include enable-php-80.conf;#PHP-INFO-END#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效include /www/server/panel/vhost/rewrite/47.112.111.11.conf;#REWRITE-ENDlocation /hls {types {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /www/rtmp;}#禁止访问的文件或目录location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md){return 404;}#一键申请SSL证书验证目录相关设置location ~ \.well-known{allow all;}#禁止在证书验证目录放入敏感文件if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {return 403;}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires      30d;error_log /dev/null;access_log /dev/null;}location ~ .*\.(js|css)?${expires      12h;error_log /dev/null;access_log /dev/null;}access_log  /www/wwwlogs/47.112.111.11.log;error_log  /www/wwwlogs/47.112.111.11.error.log;
}server
{listen 80;server_name zzz.85798.net;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/www.push.com;#CERT-APPLY-CHECK--START# 用于SSL证书申请时的文件验证相关配置 -- 请勿删除include /www/server/panel/vhost/nginx/well-known/47.112.111.11.conf;#CERT-APPLY-CHECK--END#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则#error_page 404/404.html;#SSL-END#ERROR-PAGE-START  错误页配置,可以注释、删除或修改#error_page 404 /404.html;#error_page 502 /502.html;#ERROR-PAGE-END#PHP-INFO-START  PHP引用配置,可以注释或修改include enable-php-80.conf;#PHP-INFO-END#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效include /www/server/panel/vhost/rewrite/47.112.111.11.conf;#REWRITE-ENDlocation /hls {types {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /www/rtmp;}#禁止访问的文件或目录location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md){return 404;}#一键申请SSL证书验证目录相关设置location ~ \.well-known{allow all;}#禁止在证书验证目录放入敏感文件if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {return 403;}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires      30d;error_log /dev/null;access_log /dev/null;}location ~ .*\.(js|css)?${expires      12h;error_log /dev/null;access_log /dev/null;}access_log  /www/wwwlogs/47.112.111.11.log;error_log  /www/wwwlogs/47.112.111.11.error.log;
}

三、完成

在这里插入图片描述
在这里插入图片描述

四、补充

一、基础配置原理‌
通过Nginx的server_name指令匹配域名,结合proxy_pass指定目标端口56:nginx
Copy Code
server {listen 80;server_name domain1.com;  # 域名1location / {proxy_pass http://127.0.0.1:8080;  # 转发到8080端口proxy_set_header Host $host;}
}server {listen 80;server_name domain2.com;  # 域名2location / {proxy_pass http://127.0.0.1:8081;  # 转发到8081端口proxy_set_header Host $host;}
}
访问domain1.com的请求会被转发到本机8080端口5;
访问domain2.com的请求则转发到8081端口6。
‌二、关键注意事项‌
‌域名解析配置‌
需确保域名已解析到Nginx服务器的公网IP(本地测试可修改/etc/hosts文件)5:text
Copy Code
192.168.1.100 domain1.com
192.168.1.100 domain2.com
‌请求头传递‌
通过proxy_set_header保留原始请求信息,避免后端服务丢失上下文49:nginx
Copy Code
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
‌HTTPS支持‌
若需支持HTTPS,需为每个域名配置SSL证书并监听443端口6:nginx
Copy Code
server {listen 443 ssl;server_name domain1.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;location / {proxy_pass http://127.0.0.1:8080;}
}
‌三、高级场景扩展‌
‌子域名转发‌
支持将不同子域名(如api.domain.com、blog.domain.com)转发到不同端口7:nginx
Copy Code
server {listen 80;server_name api.domain.com;location / {proxy_pass http://127.0.0.1:3000;}
}
‌动态域名映射‌
结合变量实现动态转发(需Nginx支持Lua等扩展)1:nginx
Copy Code
location /dispatch {set $target_upstream $arg_up;  # 从参数获取目标地址proxy_pass http://$target_upstream;
}
‌四、典型应用场景‌
‌多项目共存‌:同一服务器部署多个服务,通过不同域名隔离访问25。
‌微服务网关‌:将api.service.com转发至网关端口,web.service.com转发至前端端口57。
‌测试环境隔离‌:使用dev.domain.com和prod.domain.com区分环境6。
http://www.xdnf.cn/news/698437.html

相关文章:

  • 有道翻译js分析
  • 对于Const关键字修饰的对象
  • 明远智睿SSD2351开发板:语音机器人领域的变革力量
  • 麻省理工新突破:家庭场景下机器人实现精准控制,real-to-sim-to-real学习助力
  • Conda更换镜像源教程:加速Python包下载
  • C++基础:模拟实现vector(有存在深层次的浅拷贝问题)
  • 【芯片设计- SoC 常用模块 9.1 -- PLL 介绍】
  • 本周白银想法
  • 《数据结构笔记六》队列 ⭐⭐⭐
  • Dolphin文档解析从理论到实践——保姆级教程
  • 【MySQL】第12节|MySQL 8.0 主从复制原理分析与实战(二)
  • VisionPro —— 上料检测模拟
  • AVL树
  • Kotlin扩展函数与属性实战指南:从入门到企业级应用
  • 【c++】【数据结构】红黑树
  • 【位运算】常见位运算总结
  • 云原生架构,各行业数字化转型法宝
  • 回归任务损失函数对比曲线
  • vue3+Pinia+element-plus 后台管理系统项目实战记录
  • 2..3...4.... Wonderful! Wonderful!_cf1930E分析与解答
  • SpringBoot 验证码练习
  • GRASS GIS 生成斜坡单元
  • Opengl纹理采样
  • 【C语言练习】069. 使用goto语句实现复杂的跳转
  • XCTF-web-mfw
  • socket编程预备
  • 基于DFT码本的波束方向图生成MATLAB实现
  • 【AUTOSAR OS 】保护功能解析:从原理到应用与源代码解析(上篇)
  • MySQL复杂查询与Union操作
  • SQLite数据库取证分析