国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker 快速驗證:不轉(zhuǎn)發(fā)讓 Tomcat 綁定 80 端口

AnthonyHan / 1720人閱讀

摘要:重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪問。方案稍后整理發(fā)布。第三輪投產(chǎn)時,通過和一線溝通,得知客戶這邊的策略是生產(chǎn)一律關(guān)閉防火墻。不過對于端口的綁定,被真實(shí)商業(yè)環(huán)境折磨許久,研究分析實(shí)現(xiàn)了種種可能。

前言

之前寫過 tomcat 單機(jī)多實(shí)例,最后解決 80 端口訪問用的是 iptables 轉(zhuǎn)發(fā);

第三輪投產(chǎn)前,客戶做了遷移和擴(kuò)容。重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪問 80。后來我還發(fā)現(xiàn)是徹底關(guān)閉了防火墻。后來經(jīng)研究,通過打開防火墻,配置自定義防火墻函數(shù)保存iptables策略,解決了 iptables 轉(zhuǎn)發(fā)重啟失效的問題;方案也提交了客戶。方案稍后整理發(fā)布。

第三輪投產(chǎn)時,通過和一線溝通,得知客戶這邊的策略是生產(chǎn)一律關(guān)閉防火墻。so strange!但是,還得想辦法不是?總不能說這個系統(tǒng)必須得開防火墻吧?通過研究實(shí)驗和請教大神,最終搞定。整理如下。

</>復(fù)制代碼

  1. # 進(jìn)入docker容器啟動tomcat
  2. root@40f7130d7832:/usr/local/tomcat/bin# ./startup.sh
  3. # get tomcat對應(yīng)java進(jìn)程:
  4. root@40f7130d7832:/usr/local/tomcat/bin# ps -ef | grep java
  5. # 添加kch用戶
  6. root@40f7130d7832:/usr/local# # groupadd kch && useradd -d /kch -g kch -m kch && passwd kch
  7. # 更改tomcat屬主為kch
  8. root@40f7130d7832:/usr/local# chown -R kch.kch tomcat
  9. # 賦予 tomcat對應(yīng)java進(jìn)程 u+s 權(quán)限 (進(jìn)程只能是exe,不能是腳本):普通用戶訪問時,臨時使進(jìn)程具有root權(quán)限可以綁定80端口
  10. root@40f7130d7832:/usr/local# chmod u+s /docker-java-home/jre/bin/java
實(shí)驗如下

本能就用官方 tomcat7 鏡像。沒有的自行 pull 一個

</>復(fù)制代碼

  1. docker pull tomcat:7.0

默認(rèn)是 8080 端口的,啟動命令

</>復(fù)制代碼

  1. docker run --name w1 -it -p 8080:8080 tomcat:7.0 /bin/bash

這里我們需要綁定 80 端口,所以啟動命令見下文,且需要修訂 server.xml,把 tomcat 的端口由 8080 改為 80;

啟動 Tomcat 鏡像

</>復(fù)制代碼

  1. ChinaDreams:workspace kangcunhua$ docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. ....
  4. tomcat 7.0 3402a4bb8ae6 4 months ago 357MB
  5. ....
  6. ChinaDreams:workspace kangcunhua$ docker run --name www -it -p 80:80 tomcat:7.0 /bin/bash
  7. root@40f7130d7832:/usr/local/tomcat# cd bin
  8. root@40f7130d7832:/usr/local/tomcat/bin# ./startup.sh
  9. root@40f7130d7832:/usr/local/tomcat/bin# ps -ef | grep java
  10. root 12 1 37 15:12 pts/0 00:00:05 /docker-java-home/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
  11. root 56 1 0 15:12 pts/0 00:00:00 grep java
  12. root@40f7130d7832:/usr/local/tomcat/bin# curl localhost:8080
  13. ...
  14. root@40f7130d7832:/usr/local/tomcat/bin#

get 到 tomcat 的進(jìn)程(exe):/docker-java-home/jre/bin/java。注:這里查詢記下來的,必須是進(jìn)程(exe),不能是腳本。后續(xù)有用;

修改 server.xml

</>復(fù)制代碼

  1. ChinaDreams:workspace kangcunhua$ docker cp www:/usr/local/tomcat/conf/server.xml .
  2. ChinaDreams:workspace kangcunhua$ vi server.xml
  3. ChinaDreams:workspace kangcunhua$ docker cp server.xml www:/usr/local/tomcat/conf/

將默認(rèn)的 8080 改成 80
找到

</>復(fù)制代碼

  1. 修改為

  2. </>復(fù)制代碼

    1. 新建 prms 用戶
    2. 對應(yīng)容器已新建 prms 用戶

    3. </>復(fù)制代碼

      1. root@40f7130d7832:/usr/local# # groupadd kch && useradd -d /kch -g kch -m kch
      2. root@40f7130d7832:/usr/local# # passwd kch
    4. 更改 tomcat 屬主
    5. </>復(fù)制代碼

      1. root@40f7130d7832:/usr/local# ls -la
      2. drwxr-sr-x 14 root staff 4096 Dec 18 15:12 tomcat
      3. root@40f7130d7832:/usr/local# chown -R kch.kch tomcat
      4. root@40f7130d7832:/usr/local# ls -la
      5. drwxr-sr-x 20 kch kch 4096 Dec 18 15:22 tomcat
      6. root@40f7130d7832:/usr/local#
    6. 啟動
      發(fā)現(xiàn)可以正常啟動,但是不能訪問80端口;

    7. </>復(fù)制代碼

      1. $ ./startup.sh
      2. ...
      3. Tomcat started.
      4. $ curl localhost
      5. curl: (7) Failed to connect to localhost port 80: Connection refused
      6. $ ./shutdown.sh
    8. 修訂 java 的屬主
    9. </>復(fù)制代碼

      1. root@40f7130d7832:/usr/local# ls -la /docker-java-home/jre/bin/java
      2. -rwxr-xr-x 1 root root 6408 May 19 2017 /docker-java-home/jre/bin/java
      3. root@40f7130d7832:/usr/local# chmod u+s /docker-java-home/jre/bin/java
      4. root@40f7130d7832:/usr/local# ls -la /docker-java-home/jre/bin/java
      5. -rwsr-xr-x 1 root root 6408 May 19 2017 /docker-java-home/jre/bin/java
    10. 啟動 tomcat
    11. 正常啟動,且可以訪問 80 端口

    12. 通過瀏覽器http://localhost也可以訪問,看到tomcat首頁;

    13. </>復(fù)制代碼

      1. root@40f7130d7832:/usr/local# su kch
      2. $ ./startup.sh
      3. Using CATALINA_BASE: /usr/local/tomcat
      4. Using CATALINA_HOME: /usr/local/tomcat
      5. Using CATALINA_TMPDIR: /usr/local/tomcat/temp
      6. Using JRE_HOME: /docker-java-home/jre
      7. Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
      8. Tomcat started.
      9. $ curl localhost
      10. ...
      11. $
    14. 收尾
    15. 提交鏡像
    16. </>復(fù)制代碼

      1. docker commit www tomcat-bind80:7.0
    17. 提交 dockerhub
    18. </>復(fù)制代碼

      1. ChinaDreams:workspace kangcunhua$ docker images
      2. REPOSITORY TAG IMAGE ID CREATED SIZE
      3. tomcat-bind80 7.0 c6e1013adaf9 6 seconds ago 374MB
      4. ChinaDreams:workspace kangcunhua$ docker tag c6e1013adaf9 aninputforce/tomcat7-bind80:latest
      5. ChinaDreams:workspace kangcunhua$ docker images
      6. REPOSITORY TAG IMAGE ID CREATED SIZE
      7. tomcat-bind80 7.0 c6e1013adaf9 2 minutes ago 374MB
      8. aninputforce/tomcat7-bind80 latest c6e1013adaf9 2 minutes ago 374MB
      9. ChinaDreams:workspace kangcunhua$ docker push aninputforce/tomcat7-bind80
    19. 使用鏡像
    20. </>復(fù)制代碼

      1. ChinaDreams:workspace kangcunhua$ docker pull aninputforce/tomcat7-bind80
      2. ChinaDreams:workspace kangcunhua$ docker run --name www -it -p 80:80 aninputforce/tomcat7-bind80 /bin/bash
      3. root@ff63d8ac4776:/usr/local/tomcat# su kch
      4. $ pwd
      5. /usr/local/tomcat
      6. $ cd bin
      7. $ ./startup.sh
      8. Using CATALINA_BASE: /usr/local/tomcat
      9. Using CATALINA_HOME: /usr/local/tomcat
      10. Using CATALINA_TMPDIR: /usr/local/tomcat/temp
      11. Using JRE_HOME: /docker-java-home/jre
      12. Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
      13. Tomcat started.
      14. $ curl localhost
      15. ....
    21. 參考鏈接
    22. Is there a way for non-root processes to bind to “privileged” ports on Linux?請?zhí)砑渔溄用枋?/p>

    23. Bye
      這幾篇筆記寫完。對linux的認(rèn)識更加深刻了。不過對于80端口的綁定,被真實(shí)商業(yè)環(huán)境折磨許久,研究分析實(shí)現(xiàn)了種種可能。后續(xù)或許會追加筆記為“茴香豆系列” :)

    24. 51Reboot? K8s專場分享
    25. 時間:2019年1月4號21:00-22:00?

    26. 分享講師:GY 老師
    27. ?10年一線軟件開發(fā)經(jīng)驗,先后經(jīng)歷了傳統(tǒng)安全公司,以及多家互聯(lián)網(wǎng)公司;在安全開發(fā)方面,曾開發(fā)過 Linux 防火墻、web 應(yīng)用防火墻、Linux 安全內(nèi)核加固,基于大流量的 Web 安全威脅分析等項目;在互聯(lián)網(wǎng)公司工作時,曾基于 DPDK 高性能網(wǎng)絡(luò)開發(fā)框架開發(fā)過基于全流量的網(wǎng)絡(luò)流量分析平臺和基于 Sflow 網(wǎng)絡(luò)流量分析平臺,基于 Golang 開發(fā) SmartDNS 等;開發(fā)語言也是從C -> python -> golang 的轉(zhuǎn)變過程?現(xiàn)從事基于 K8S 和 Docker在私有云平臺建設(shè)方面的研發(fā)工作;具備豐富的Linux系統(tǒng)開發(fā)經(jīng)驗、網(wǎng)絡(luò)開發(fā)經(jīng)驗以及項目管理經(jīng)驗;目前開發(fā)工作 90+% 都在用 Golang,Golang 是一門簡潔、高效、強(qiáng)大且靈活的編程語言。

    28. 參與方式:添加小助手wechat:18310139238,備注:公開課,拉入直播分享群與老師互動

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27669.html

相關(guān)文章

  • Docker 快速驗證轉(zhuǎn)發(fā) Tomcat 綁定 80 端口

    摘要:重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪問。方案稍后整理發(fā)布。第三輪投產(chǎn)時,通過和一線溝通,得知客戶這邊的策略是生產(chǎn)一律關(guān)閉防火墻。不過對于端口的綁定,被真實(shí)商業(yè)環(huán)境折磨許久,研究分析實(shí)現(xiàn)了種種可能。 前言 之前寫過 tomcat 單機(jī)多實(shí)例,最后解決 80 端口訪問用的是 iptables 轉(zhuǎn)發(fā); 第三輪投產(chǎn)前,客戶做了遷移和擴(kuò)容。重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)...

    DevTTL 評論0 收藏0
  • docker入門實(shí)戰(zhàn)筆記

    摘要:創(chuàng)建用戶組并添加用戶。默認(rèn)情況下是過濾掉所有的入站規(guī)則。初始命令表示一旦容器啟動,需要運(yùn)行的命令,此時使用,表示什么也不做,只需進(jìn)入命令行即可。1.什么是docker  docker翻譯為搬運(yùn)工,在這里應(yīng)該可以理解為搬運(yùn)應(yīng)用的工具,也就是云.先了解其運(yùn)用場景之后更容易對他形成深刻理解.  Docker提供了一種可移植的配置標(biāo)準(zhǔn)化機(jī)制,允許你一致性地在不同的機(jī)器上運(yùn)行同一個Container;...

    Tecode 評論0 收藏0
  • 利用ELK搭建Docker容器化應(yīng)用日志中心

    摘要:概述應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于容器中的應(yīng)用程序的打印日志供運(yùn)維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應(yīng)用程序的打印日志供運(yùn)維分析。典型的比如 SpringBoot應(yīng)用的日志 收集。本文即將闡述如何利...

    周國輝 評論0 收藏0
  • Docker中配置Nginx與PHP

    摘要:后臺運(yùn)行容器后面的那個就是鏡像的名稱了啟動配置的配置文件下面貼出我的配置這個我在主機(jī)的文件中配置的指向,其實(shí)就是訪問的本機(jī)端口。 最近在學(xué)docker,順便配置了一下docker中的nginx與php,發(fā)現(xiàn)網(wǎng)上的關(guān)于docker中配置nginx與php的資料很少,而且有的也很舊,沒有太多的參考性,所以決定自己寫一篇,分享一下其中的經(jīng)驗。 版本說明 docker: Version 17...

    王晗 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<