nginx端口转发+域名映射
前段时间在Centos7下成功搭建了apache文件服务器 → 时光隧道
如上图,我只能通过IP+端口的方式来访问,现在我想提升一下逼格,通过自定义域名就可以访问,比如my.apache.com!说干就干!!!
1、端口转发
I、修改配置文件
目前我要访问文件服务器,需要输入IP+端口,如果不想输端口(默认80端口),就要做80端口转8000端口。
首先想到的是采用nginx做端口转发,可以通过在nginx.conf中添加配置(尽量不要改动里面的配置,出现错误很难察觉)
vi /usr/local/nginx/conf/nginx.conf
添加以下配置
然后在nginx.conf同级目录创建my.apache.conf,输入以下内容:
server {listen 80;server_name my.apache.com;location / {proxy_pass http://localhost:8000;}
}
II、访问
现在我们尝试一下用自定义的域名访问
发现是访问不了的,此时我想到了本地域名映射!
2、域名映射
I、修改配置文件
打开本地hosts文件,文件路径为:
C:\Windows\System32\drivers\etc
II、访问
刷新页面,可以发现可以访问了
※:试验证明,proxy_pass http://localhost:8000; 中host改为真实IP会报错
查看错误日志:
刚开始我就是写的真实IP,一直报这个。后来看到一位博友说localhost也不行,要改成127.0.0.1。于是把它改成127.0.0.1,没想到真的可以。我又试试改成localhost,事实证明也是可以的。
3、负载均衡
I、项目准备
此次演示负载均衡的项目很简单,就是一段获取本机地址的代码,如下:
@GetMapping("/host")public JsonData host(){try {InetAddress addr = InetAddress.getLocalHost();return JsonData.buildSuccess(addr.getHostAddress());} catch (UnknownHostException e) {e.printStackTrace();}return null;}
II、环境搭建
部署环境我是准备用三台机器(一台机器+两台docker搭建的环境),其中一台部署nginx,转发请求到另外两台部署了项目的机器。部署项目的机器地址分别是172.17.0.7和172.17.0.8。
III、配置文件
核心就是nginx的配置文件了,nginx.conf配置如下:
就只加了上图红框的配置,意思是引用其他的配置文件。我认为nginx.conf就应该这么配置,尽量不要去修改原配置,只需要引用外部配置文件就行了!
然后我们在/usr/local/nginxconf目录中添加 .conf 结尾的配置文件(前缀随意),内容如下:
upstream www_server_pools {server 宿主机ip:8082;server 宿主机ip:8083;
}
server {listen 8081;server_name www_server_pools;location / {proxy_pass http://www_server_pools;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;proxy_redirect default;proxy_buffer_size 512k;proxy_buffers 6 512k;proxy_busy_buffers_size 512k;proxy_temp_file_write_size 512k;client_max_body_size 100m;}
}
说明:我是用docker在宿主机上搭建了两台机器环境(搭建方法),分别用8082和8083映射两台docker的8082(项目地址就是8082)。所以我访问 http://宿主机ip:8081/api/v1/user/host 就可以转发到宿主机 ip:8082 或宿主机 ip:8083 ,然后映射到docker中的8082。nginx默认负载均衡策略为轮询。
nginx端口转发+域名映射相关推荐
- mac nginx映射ip和端口_mac 上配置 nginx 端口转发访问 angular 项目
背景 在进行前端的移动端开发时,需要在手机上预览电脑上的项目. 以 angular 为例,默认启动项目后,在开发机(以 Mac 为例)的浏览器地址栏输入 http://localhost:4200 即 ...
- vue反向代理解决跨域及部署nginx端口转发解决跨域
1. 前言 本文是为了解决vue反向代理解决跨域及部署服务器nginx端口转发解决跨域,因为踩了不少的坑,百度了很多,也试了太多的方法,最终得以解决,所以记录一下,希望遇到同样问题的友友们可以高效的解 ...
- Nginx端口转发简明配置
Nginx端口转发简明配置 最近想要实现蜜罐运维端口的跨区转发(A区,C区不通,走B区中转实现 A到B到C的运维).看完官方文档和几篇不错的博客后,现小结记录,方便以后快速配置Nginx转发相关功能. ...
- nginx端口转发本地多域名不同端口访问
需求:例如 本地192.168.0.1搭建了gitlab和jenkins,分别需要用gitlab.com和jenkins.com访问,gitlab为80端口,Jenkins为8088端口,需要怎么实现 ...
- nginx 端口转发
概述 这两天在写 go 项目, 一个 HTTP 服务器. 之前写的是 php 项目, nginx 监听80端口, 根据域名将请求分配给不同项目. 现在换了 go, 自然也想延续这个操作, 毕竟都是跑在 ...
- 配置Nginx端口转发时的问题
文章目录 一.起因 二.部署 三.端口映射 四.暂停/重新启动 五.端口映射不起作用 Nginx是一款高性能Http服务器,其最大的用途是作为负载均衡和反向代理(端口转发)的工具. 一.起因 昨天晚上 ...
- linux安装nginx并配置域名映射和图片服务器
环境:阿里云轻量级云服务器 操作系统:centos7 背景: 在上一篇博客阿里云服务器部署SpringBoot项目(mysql安装.服务部署)(https://blog.csdn.net/zwx199 ...
- windows下使用nginx 端口转发 frp内网转发
端口转发工具, win10下测试通过,用ip方式优于域名方式 https://sourceforge.net/projects/pjs-passport/ nginx下载地址 http://nginx ...
- nginx端口转发(80端口到tomcat的8080端口)具体步骤以及配置
一.为什么要转发 80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数 最多的协议,主要用于WWW传输信息的协议.可以通过HTT ...
最新文章
- 在Eclipse中使用JUnit4进行单元测试
- 程序员高薪盛宴背后:程序员正在消失?
- 软考自查:数据库设计
- Eclipse:Target runtime XXX is not defined
- 第五章 PX4-Pixhawk-GPS解析
- 求子数组的最大和要求O(n)
- 微分算子求解微分方程
- 供参考的 php 学习路线
- 管理感悟:图省事就是把别人当白痴
- 第五周-第08章节-Python3.5-内置模块详解之shutil模块
- c语言窗口炸弹代码,C语言实现宾果消消乐
- 利用jackson-dataformat-xml包中的XmlMapper类将xml解析成实体类对象
- 基于DFSMN-CTC及CTC-CE联合训练的声学模型
- win7忘记密码怎么办,Administrator忘记密码解决办法【完美、简单、有效】
- android nougat honr7,Honor 荣耀7 最新全功能NFC 体验
- angular7上传表格文件并展示在页面
- VS2017安装程序提示“无法下载应用程序,请检查Internet连接”,以及安装程序在“一切准备”页面停一会之后就一闪而过没反应了
- 【重识云原生】第六章容器基础6.4.5.1节——Deployment概述
- Excel多个空白单元统一复制上方单元内容的操作
- PHP美食甜点蛋糕店网站模板源码+带手机端/后台
热门文章
- 阿里云云计算专业考试线上视频培训课程(ACP级)
- nvme固态必须uefi启动吗_读取470MB/s,如不装个WTG系统岂不是浪费?aigo推拉固态U盘...
- 阿里开源 JetCache 缓存框架介绍使用
- ThinkPHP源码学习之I方法
- 查询一个表中名字相同的数据,并且显示出来,并且显示重复个数
- USB3.0转HDMI故障
- 直播预告: EMNLP 2020 专场四| AI TIME PhD
- 《Python语言及应用》结课考试重点编程题
- 最新、最全、最准确的手机号正则表达式
- Android图片处理及不规则裁剪