当前位置: 首页 > 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。

相关文章:

  • MySQL MVCC(多版本并发控制)详解
  • 力扣热题100之二叉树的中序遍历
  • 力扣HOT100之回溯:51. N 皇后
  • 学习python day10
  • 【白雪讲堂】多模态技术:统一认知的优化器
  • [CISCN 2021初赛]glass
  • OpenLayers 加载网格信息
  • Redis 5 种基础数据结构?
  • LiveNVR 直播流拉转:Onvif/RTSP/RTMP/FLV/HLS 支持海康宇视天地 SDK 接入-视频广场页面集成与视频播放说明
  • 《清晰思考》
  • 实验设计与分析(第6版,Montgomery)第4章随机化区组,拉丁方, 及有关设计4.5节思考题4.1~4.4 R语言解题
  • 本地(Linux)编译 MySQL 源码
  • 三、zookeeper 常用shell命令
  • 触控精灵 ADB运行模式填写电脑端IP教程
  • Linux基础 -- Linux 启动调试之深入理解 `initcall_debug` 与 `ignore_loglevel`
  • 从零到一选择AI自动化平台:深度解析n8n、Dify与Coze
  • Axure项目实战:运输统计页引入echarts实现高保真设计(JS代码ctrl+c ctrl+v懂得来)
  • 配置vscode中java.configuration.runtimes
  • 贪心算法实战篇2
  • 2262 1527的解码实验程序
  • 现代著名设计师及作品/手机优化软件哪个好
  • 建站专家网站建设系统/报个计算机培训班多少钱
  • 软件定制开发服务/外贸seo站
  • 安卓4.3网站开发兼容/平台推广营销
  • 北海教网站建设/百度信息流
  • 公司网站是做的谷歌的/管理人员需要培训哪些课程