摘要:重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪(fǎng)問(wèn)。方案稍后整理發(fā)布。第三輪投產(chǎn)時(shí),通過(guò)和一線(xiàn)溝通,得知客戶(hù)這邊的策略是生產(chǎn)一律關(guān)閉防火墻。不過(guò)對(duì)于端口的綁定,被真實(shí)商業(yè)環(huán)境折磨許久,研究分析實(shí)現(xiàn)了種種可能。
前言
之前寫(xiě)過(guò) tomcat 單機(jī)多實(shí)例,最后解決 80 端口訪(fǎng)問(wèn)用的是 iptables 轉(zhuǎn)發(fā);
第三輪投產(chǎn)前,客戶(hù)做了遷移和擴(kuò)容。重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪(fǎng)問(wèn) 80。后來(lái)我還發(fā)現(xiàn)是徹底關(guān)閉了防火墻。后來(lái)經(jīng)研究,通過(guò)打開(kāi)防火墻,配置自定義防火墻函數(shù)保存iptables策略,解決了 iptables 轉(zhuǎn)發(fā)重啟失效的問(wèn)題;方案也提交了客戶(hù)。方案稍后整理發(fā)布。
第三輪投產(chǎn)時(shí),通過(guò)和一線(xiàn)溝通,得知客戶(hù)這邊的策略是生產(chǎn)一律關(guān)閉防火墻。so strange!但是,還得想辦法不是?總不能說(shuō)這個(gè)系統(tǒng)必須得開(kāi)防火墻吧?通過(guò)研究實(shí)驗(yàn)和請(qǐng)教大神,最終搞定。整理如下。
# 進(jìn)入docker容器啟動(dòng)tomcat root@40f7130d7832:/usr/local/tomcat/bin# ./startup.sh # get tomcat對(duì)應(yīng)java進(jìn)程: root@40f7130d7832:/usr/local/tomcat/bin# ps -ef | grep java # 添加kch用戶(hù) root@40f7130d7832:/usr/local# # groupadd kch && useradd -d /kch -g kch -m kch && passwd kch # 更改tomcat屬主為kch root@40f7130d7832:/usr/local# chown -R kch.kch tomcat # 賦予 tomcat對(duì)應(yīng)java進(jìn)程 u+s 權(quán)限 (進(jìn)程只能是exe,不能是腳本):普通用戶(hù)訪(fǎng)問(wèn)時(shí),臨時(shí)使進(jìn)程具有root權(quán)限可以綁定80端口 root@40f7130d7832:/usr/local# chmod u+s /docker-java-home/jre/bin/java實(shí)驗(yàn)如下
本能就用官方 tomcat7 鏡像。沒(méi)有的自行 pull 一個(gè)
docker pull tomcat:7.0
默認(rèn)是 8080 端口的,啟動(dòng)命令
docker run --name w1 -it -p 8080:8080 tomcat:7.0 /bin/bash
這里我們需要綁定 80 端口,所以啟動(dòng)命令見(jiàn)下文,且需要修訂 server.xml,把 tomcat 的端口由 8080 改為 80;
啟動(dòng) Tomcat 鏡像ChinaDreams:workspace kangcunhua$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE .... tomcat 7.0 3402a4bb8ae6 4 months ago 357MB .... ChinaDreams:workspace kangcunhua$ docker run --name www -it -p 80:80 tomcat:7.0 /bin/bash root@40f7130d7832:/usr/local/tomcat# cd bin root@40f7130d7832:/usr/local/tomcat/bin# ./startup.sh root@40f7130d7832:/usr/local/tomcat/bin# ps -ef | grep java 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 root 56 1 0 15:12 pts/0 00:00:00 grep java root@40f7130d7832:/usr/local/tomcat/bin# curl localhost:8080 ... root@40f7130d7832:/usr/local/tomcat/bin#
get 到 tomcat 的進(jìn)程(exe):/docker-java-home/jre/bin/java。注:這里查詢(xún)記下來(lái)的,必須是進(jìn)程(exe),不能是腳本。后續(xù)有用;
修改 server.xmlChinaDreams:workspace kangcunhua$ docker cp www:/usr/local/tomcat/conf/server.xml . ChinaDreams:workspace kangcunhua$ vi server.xml ChinaDreams:workspace kangcunhua$ docker cp server.xml www:/usr/local/tomcat/conf/
將默認(rèn)的 8080 改成 80
找到
修改為
新建 prms 用戶(hù) 對(duì)應(yīng)容器已新建 prms 用戶(hù)
root@40f7130d7832:/usr/local# # groupadd kch && useradd -d /kch -g kch -m kch root@40f7130d7832:/usr/local# # passwd kch更改 tomcat 屬主root@40f7130d7832:/usr/local# ls -la drwxr-sr-x 14 root staff 4096 Dec 18 15:12 tomcat root@40f7130d7832:/usr/local# chown -R kch.kch tomcat root@40f7130d7832:/usr/local# ls -la drwxr-sr-x 20 kch kch 4096 Dec 18 15:22 tomcat root@40f7130d7832:/usr/local#啟動(dòng)
發(fā)現(xiàn)可以正常啟動(dòng),但是不能訪(fǎng)問(wèn)80端口;$ ./startup.sh ... Tomcat started. $ curl localhost curl: (7) Failed to connect to localhost port 80: Connection refused $ ./shutdown.sh修訂 java 的屬主root@40f7130d7832:/usr/local# ls -la /docker-java-home/jre/bin/java -rwxr-xr-x 1 root root 6408 May 19 2017 /docker-java-home/jre/bin/java root@40f7130d7832:/usr/local# chmod u+s /docker-java-home/jre/bin/java root@40f7130d7832:/usr/local# ls -la /docker-java-home/jre/bin/java -rwsr-xr-x 1 root root 6408 May 19 2017 /docker-java-home/jre/bin/java啟動(dòng) tomcat正常啟動(dòng),且可以訪(fǎng)問(wèn) 80 端口
通過(guò)瀏覽器http://localhost也可以訪(fǎng)問(wèn),看到tomcat首頁(yè);
root@40f7130d7832:/usr/local# su kch $ ./startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /docker-java-home/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. $ curl localhost ... $收尾 提交鏡像docker commit www tomcat-bind80:7.0提交 dockerhubChinaDreams:workspace kangcunhua$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat-bind80 7.0 c6e1013adaf9 6 seconds ago 374MB ChinaDreams:workspace kangcunhua$ docker tag c6e1013adaf9 aninputforce/tomcat7-bind80:latest ChinaDreams:workspace kangcunhua$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat-bind80 7.0 c6e1013adaf9 2 minutes ago 374MB aninputforce/tomcat7-bind80 latest c6e1013adaf9 2 minutes ago 374MB ChinaDreams:workspace kangcunhua$ docker push aninputforce/tomcat7-bind80使用鏡像ChinaDreams:workspace kangcunhua$ docker pull aninputforce/tomcat7-bind80 ChinaDreams:workspace kangcunhua$ docker run --name www -it -p 80:80 aninputforce/tomcat7-bind80 /bin/bash root@ff63d8ac4776:/usr/local/tomcat# su kch $ pwd /usr/local/tomcat $ cd bin $ ./startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /docker-java-home/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. $ curl localhost ....參考鏈接Is there a way for non-root processes to bind to “privileged” ports on Linux?請(qǐng)?zhí)砑渔溄用枋?/p>
Bye
51Reboot? K8s專(zhuān)場(chǎng)分享
這幾篇筆記寫(xiě)完。對(duì)linux的認(rèn)識(shí)更加深刻了。不過(guò)對(duì)于80端口的綁定,被真實(shí)商業(yè)環(huán)境折磨許久,研究分析實(shí)現(xiàn)了種種可能。后續(xù)或許會(huì)追加筆記為“茴香豆系列” :)時(shí)間:2019年1月4號(hào)21:00-22:00?
分享講師:GY 老師?10年一線(xiàn)軟件開(kāi)發(fā)經(jīng)驗(yàn),先后經(jīng)歷了傳統(tǒng)安全公司,以及多家互聯(lián)網(wǎng)公司;在安全開(kāi)發(fā)方面,曾開(kāi)發(fā)過(guò) Linux 防火墻、web 應(yīng)用防火墻、Linux 安全內(nèi)核加固,基于大流量的 Web 安全威脅分析等項(xiàng)目;在互聯(lián)網(wǎng)公司工作時(shí),曾基于 DPDK 高性能網(wǎng)絡(luò)開(kāi)發(fā)框架開(kāi)發(fā)過(guò)基于全流量的網(wǎng)絡(luò)流量分析平臺(tái)和基于 Sflow 網(wǎng)絡(luò)流量分析平臺(tái),基于 Golang 開(kāi)發(fā) SmartDNS 等;開(kāi)發(fā)語(yǔ)言也是從C -> python -> golang 的轉(zhuǎn)變過(guò)程?現(xiàn)從事基于 K8S 和 Docker在私有云平臺(tái)建設(shè)方面的研發(fā)工作;具備豐富的Linux系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)、網(wǎng)絡(luò)開(kāi)發(fā)經(jīng)驗(yàn)以及項(xiàng)目管理經(jīng)驗(yàn);目前開(kāi)發(fā)工作 90+% 都在用 Golang,Golang 是一門(mén)簡(jiǎn)潔、高效、強(qiáng)大且靈活的編程語(yǔ)言。
參與方式:添加小助手wechat:18310139238,備注:公開(kāi)課,拉入直播分享群與老師互動(dòng)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/33101.html
摘要:重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪(fǎng)問(wèn)。方案稍后整理發(fā)布。第三輪投產(chǎn)時(shí),通過(guò)和一線(xiàn)溝通,得知客戶(hù)這邊的策略是生產(chǎn)一律關(guān)閉防火墻。不過(guò)對(duì)于端口的綁定,被真實(shí)商業(yè)環(huán)境折磨許久,研究分析實(shí)現(xiàn)了種種可能。 前言 之前寫(xiě)過(guò) tomcat 單機(jī)多實(shí)例,最后解決 80 端口訪(fǎng)問(wèn)用的是 iptables 轉(zhuǎn)發(fā); 第三輪投產(chǎn)前,客戶(hù)做了遷移和擴(kuò)容。重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)...
摘要:創(chuàng)建用戶(hù)組并添加用戶(hù)。默認(rèn)情況下是過(guò)濾掉所有的入站規(guī)則。初始命令表示一旦容器啟動(dòng),需要運(yùn)行的命令,此時(shí)使用,表示什么也不做,只需進(jìn)入命令行即可。1.什么是docker docker翻譯為搬運(yùn)工,在這里應(yīng)該可以理解為搬運(yùn)應(yīng)用的工具,也就是云.先了解其運(yùn)用場(chǎng)景之后更容易對(duì)他形成深刻理解. Docker提供了一種可移植的配置標(biāo)準(zhǔn)化機(jī)制,允許你一致性地在不同的機(jī)器上運(yùn)行同一個(gè)Container;...
摘要:概述應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于容器中的應(yīng)用程序的打印日志供運(yùn)維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應(yīng)用程序的打印日志供運(yùn)維分析。典型的比如 SpringBoot應(yīng)用的日志 收集。本文即將闡述如何利...
摘要:后臺(tái)運(yùn)行容器后面的那個(gè)就是鏡像的名稱(chēng)了啟動(dòng)配置的配置文件下面貼出我的配置這個(gè)我在主機(jī)的文件中配置的指向,其實(shí)就是訪(fǎng)問(wèn)的本機(jī)端口。 最近在學(xué)docker,順便配置了一下docker中的nginx與php,發(fā)現(xiàn)網(wǎng)上的關(guān)于docker中配置nginx與php的資料很少,而且有的也很舊,沒(méi)有太多的參考性,所以決定自己寫(xiě)一篇,分享一下其中的經(jīng)驗(yàn)。 版本說(shuō)明 docker: Version 17...
閱讀 2113·2021-11-18 10:02
閱讀 2863·2021-09-04 16:41
閱讀 1156·2019-08-30 15:55
閱讀 1420·2019-08-29 17:27
閱讀 1105·2019-08-29 17:12
閱讀 2539·2019-08-29 15:38
閱讀 2864·2019-08-29 13:02
閱讀 2841·2019-08-29 12:29