基於docker環境構建nginx代理java項目操作手冊

目錄

1、搭建環境說明

2、基礎鏡像準備

Java項目準備

nginx部署準備

3、容器啓動

Nginx容器啓動

查看運行容器IP地址

4、反向代理配置

5、問題截圖 

備註


1、搭建環境說明

Windows環境 win10+docker

基礎信息說明

本文全程使用CMD控制檯進行命令操作,可能的朋友使用Linux命令比較習慣。在此也推薦一個CMD環境使用shell命令的方式

使用git進行CMD控制檯對shell的支持,git安裝一路下一步,然後配置如下path路徑支持即可

Git安裝路徑\Git\usr\bin;

Git安裝路徑\Git\mingw64\bin;

另外如果朋友們不知道是配置不對還是docker的原因導致的 最終沒有成功的,建議脫離容器,使用一個nginx和tomcat進行配置一次然後先驗證下配置是否已經生效 

如果是配置文件有問題 在nginx的文件夾下 執行nginx.exe 可以看到異常問題 

本文用得到的常規命令 彙總

docker 日誌
docker logs -f ID 

docker端口
docker port ID

docker網絡路由
查看route print
查看機器信息IP
ocker inspect  1990d5bcebaf

docker inspect --format='{{.NetworkSettings.IPAddress}}'  ID

因爲docker容器內部支持命令有限 查看文件內容要用cat

cat  /etc/nginx/nginx.conf

 

2、基礎鏡像準備

Java項目準備

https://blog.csdn.net/xupeng874395012/article/details/105779398

nginx部署準備

docker run nginx 執行此命令會自動拉取最新的nginx鏡像

 

3、容器啓動

Nginx容器啓動

先啓動ngixn容器 然後看看下容器內的配置文件資源位置

/usr/share/nginx/html

/etc/nginx/nginx.conf

/etc/nginx/conf.d 

/var/log/nginx

然後對應在本地磁盤下依次創建對應結構文件,然後再重新啓動nginx的時候加載指定本地磁盤的文件路徑

docker run  --name mynginx -d -p 80:80

-v d:\docker\nginx\html:/usr/share/nginx/html

-v d:\docker\nginx\conf\nginx.conf:/etc/nginx/nginx.conf

-v d:\docker\nginx\conf.d:/etc/nginx/conf.d 

-v d:\docker\nginx\logs:/var/log/nginx nginx

參考上面的命令 因爲是我是在windows環境弄的,Windows路徑需要\斜線來指定路徑,我的文件均在D盤docker\nginx文件夾下處理  然後執行上面的命令啓動nginx加載本地自定義文件。然後使用 docker exec -it id /bin/bash 命令進入docker 容器,查看下當前docker容器內數據是否已經被指定文件覆蓋。 然後啓動兩個java程序,然後查看docker運行時容器有哪些 檢查啓動是否成功

 

 

查看運行容器IP地址

用docker inspect  ID命令查看當前容器的ID地址

具體執行命令如下

docker inspect --format='{{.NetworkSettings.IPAddress}}'  ID

 

 

 

 

4、反向代理配置

修改nginx.conf配置文件 增加如下配置

Upstream 下面是java項目的部署地址和端口

      upstream example{

        server 172.17.0.2:8080 weight=1;

        server 172.17.0.3:8080  weight=1;

    }

       server {

              listen       80;

              server_name  www.example.com localhost;

              location / {

                     proxy_pass http://example;

              }

       }

 

重新覆蓋nginx配置 然後啓動容器訪問nginx服務 即可直接轉發到java項目中,最終結果如下圖

查看java項目日誌 

docker logs -f  ID  查詢實時日誌   發現在頁面刷新請求的時候 ,已經分別把請求轉發到了兩個docker容器上了。

 

 

 

5、問題截圖 

上面我的java項目是沒有bin/bash的可以使用 /bin/sh進入

如下圖所示 ,這個nginx掛載文件的時候 指定的替換文件不對應導致的,指定替換nginx的文件位置指定成了文件夾了

 

備註

本實踐操作僅僅適合練手,不適合實際操作,反向代理和負載均衡階段生產環境需要支持信息因業務不同也不同,在此文不做相關說明

 

關注下方二維碼,每週雜談:java老兵陪你聊編程

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章