前段时间在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端口转发+域名映射相关推荐

  1. mac nginx映射ip和端口_mac 上配置 nginx 端口转发访问 angular 项目

    背景 在进行前端的移动端开发时,需要在手机上预览电脑上的项目. 以 angular 为例,默认启动项目后,在开发机(以 Mac 为例)的浏览器地址栏输入 http://localhost:4200 即 ...

  2. vue反向代理解决跨域及部署nginx端口转发解决跨域

    1. 前言 本文是为了解决vue反向代理解决跨域及部署服务器nginx端口转发解决跨域,因为踩了不少的坑,百度了很多,也试了太多的方法,最终得以解决,所以记录一下,希望遇到同样问题的友友们可以高效的解 ...

  3. Nginx端口转发简明配置

    Nginx端口转发简明配置 最近想要实现蜜罐运维端口的跨区转发(A区,C区不通,走B区中转实现 A到B到C的运维).看完官方文档和几篇不错的博客后,现小结记录,方便以后快速配置Nginx转发相关功能. ...

  4. nginx端口转发本地多域名不同端口访问

    需求:例如 本地192.168.0.1搭建了gitlab和jenkins,分别需要用gitlab.com和jenkins.com访问,gitlab为80端口,Jenkins为8088端口,需要怎么实现 ...

  5. nginx 端口转发

    概述 这两天在写 go 项目, 一个 HTTP 服务器. 之前写的是 php 项目, nginx 监听80端口, 根据域名将请求分配给不同项目. 现在换了 go, 自然也想延续这个操作, 毕竟都是跑在 ...

  6. 配置Nginx端口转发时的问题

    文章目录 一.起因 二.部署 三.端口映射 四.暂停/重新启动 五.端口映射不起作用 Nginx是一款高性能Http服务器,其最大的用途是作为负载均衡和反向代理(端口转发)的工具. 一.起因 昨天晚上 ...

  7. linux安装nginx并配置域名映射和图片服务器

    环境:阿里云轻量级云服务器 操作系统:centos7 背景: 在上一篇博客阿里云服务器部署SpringBoot项目(mysql安装.服务部署)(https://blog.csdn.net/zwx199 ...

  8. windows下使用nginx 端口转发 frp内网转发

    端口转发工具, win10下测试通过,用ip方式优于域名方式 https://sourceforge.net/projects/pjs-passport/ nginx下载地址 http://nginx ...

  9. nginx端口转发(80端口到tomcat的8080端口)具体步骤以及配置

    一.为什么要转发 80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数 最多的协议,主要用于WWW传输信息的协议.可以通过HTT ...

最新文章

  1. 在Eclipse中使用JUnit4进行单元测试
  2. 程序员高薪盛宴背后:程序员正在消失?
  3. 软考自查:数据库设计
  4. Eclipse:Target runtime XXX is not defined
  5. 第五章 PX4-Pixhawk-GPS解析
  6. 求子数组的最大和要求O(n)
  7. 微分算子求解微分方程
  8. 供参考的 php 学习路线
  9. 管理感悟:图省事就是把别人当白痴
  10. 第五周-第08章节-Python3.5-内置模块详解之shutil模块
  11. c语言窗口炸弹代码,C语言实现宾果消消乐
  12. 利用jackson-dataformat-xml包中的XmlMapper类将xml解析成实体类对象
  13. 基于DFSMN-CTC及CTC-CE联合训练的声学模型
  14. win7忘记密码怎么办,Administrator忘记密码解决办法【完美、简单、有效】
  15. android nougat honr7,Honor 荣耀7 最新全功能NFC 体验
  16. angular7上传表格文件并展示在页面
  17. VS2017安装程序提示“无法下载应用程序,请检查Internet连接”,以及安装程序在“一切准备”页面停一会之后就一闪而过没反应了
  18. 【重识云原生】第六章容器基础6.4.5.1节——Deployment概述
  19. Excel多个空白单元统一复制上方单元内容的操作
  20. PHP美食甜点蛋糕店网站模板源码+带手机端/后台

热门文章

  1. 阿里云云计算专业考试线上视频培训课程(ACP级)
  2. nvme固态必须uefi启动吗_读取470MB/s,如不装个WTG系统岂不是浪费?aigo推拉固态U盘...
  3. 阿里开源 JetCache 缓存框架介绍使用
  4. ThinkPHP源码学习之I方法
  5. 查询一个表中名字相同的数据,并且显示出来,并且显示重复个数
  6. USB3.0转HDMI故障
  7. 直播预告: EMNLP 2020 专场四| AI TIME PhD
  8. 《Python语言及应用》结课考试重点编程题
  9. 最新、最全、最准确的手机号正则表达式
  10. Android图片处理及不规则裁剪