nginx端口转发+域名映射
前段時間在Centos7下成功搭建了apache文件服務器 → 時光隧道
如上圖,我只能通過IP+端口的方式來訪問,現在我想提升一下逼格,通過自定義域名就可以訪問,比如my.apache.com!說干就干!!!
1、端口轉發
I、修改配置文件
目前我要訪問文件服務器,需要輸入IP+端口,如果不想輸端口(默認80端口),就要做80端口轉8000端口。
首先想到的是采用nginx做端口轉發,可以通過在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\etcII、訪問
刷新頁面,可以發現可以訪問了
※:試驗證明,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 結尾的配置文件(前綴隨意),內容如下:
說明:我是用docker在宿主機上搭建了兩臺機器環境(搭建方法),分別用8082和8083映射兩臺docker的8082(項目地址就是8082)。所以我訪問 http://宿主機ip:8081/api/v1/user/host 就可以轉發到宿主機 ip:8082 或宿主機 ip:8083 ,然后映射到docker中的8082。nginx默認負載均衡策略為輪詢。
總結
以上是生活随笔為你收集整理的nginx端口转发+域名映射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Navicat使用总结(2022.9)
- 下一篇: ROS noetic gazebo11车