歡迎您來(lái)到潮人地東莞seo博客,本站專業(yè)免費(fèi)分享多元化的seo網(wǎng)站優(yōu)化技術(shù)干貨以及解答seo各種常見(jiàn)問(wèn)題的博客網(wǎng)站

熱門關(guān)鍵詞: seo優(yōu)化 seo推廣 seo技術(shù) seo博客 seo網(wǎng)站推廣怎么做 seo怎么做 新手做seo怎么做
當(dāng)前位置:seo博客首頁(yè) > seo技術(shù)分享 >

seo技術(shù):如何實(shí)現(xiàn)docker容器域名綁定?,服務(wù)器綁定域名分享教程

發(fā)布時(shí)間:2023-08-14 12:56:01 文章出處:潮人地東莞seo博客 作者:東莞seo博客 閱讀數(shù)量:

潮人地東莞seo博客小編下面跟大家分享關(guān)于seo技術(shù):如何實(shí)現(xiàn)docker容器域名綁定?,服務(wù)器綁定域名分享教程等問(wèn)題,希望seo專員在做seo優(yōu)化的過(guò)程中有所幫助,內(nèi)容僅供參考。

docker容器域名綁定

你如果說(shuō)站在一個(gè)黑客的角度來(lái)看,域名要不要問(wèn)題不大,因?yàn)閜ing一下基本就出來(lái)了。確實(shí),但是我們寫的網(wǎng)站都是面向用戶的,如果你這兒直接是個(gè)ip用戶多少會(huì)覺(jué)得怪異。于是本著強(qiáng)迫癥的心里,我花了大概一天的時(shí)間反復(fù)對(duì)著服務(wù)器鞭尸,終于找了解決問(wèn)題的關(guān)鍵—— nginx。

2.為什么問(wèn)題的關(guān)鍵變成了nginx?

你如果有時(shí)間可以看看我這個(gè)探索的過(guò)程,時(shí)間緊迫可以直接跳過(guò)。看了好多文章發(fā)現(xiàn)問(wèn)題的根本還是這個(gè)nginx的配置不太明白,于是想了個(gè)方法,在寶塔面板里面有nginx的配置方法,用的是GUI,點(diǎn)兩下就行,只要找到對(duì)應(yīng)的nginx的conf配置文件文件就行:

seo技術(shù):如何實(shí)現(xiàn)docker容器域名綁定?,服務(wù)器綁定域名分享教程

seo博客相關(guān)推薦閱讀:網(wǎng)站優(yōu)化seo:seo搜索引擎介紹是怎樣?(從8個(gè)方面全面分析SEO是怎樣)

首先用GUI配置一下https域名訪問(wèn):

開(kāi)啟訪問(wèn)如下:

好的現(xiàn)在域名https解析配置好了:

接下來(lái)就是分析:

接下來(lái)可能你想說(shuō),懂了,那我就在docker里面搞一個(gè)nginx,然后將這個(gè)nginx的配置文件給復(fù)制進(jìn)去,建立相關(guān)的文件夾,然后把需要用到的ssl的公鑰和私鑰以及必要的日志打印文件給建好,畢竟在沒(méi)有寶塔面板的情況下配個(gè)域名和https訪問(wèn)也不至于不能實(shí)現(xiàn)。雖然過(guò)程可能有些痛苦,但理論上可行。很遺憾地告訴你,這其實(shí)是一個(gè)錯(cuò)誤的思路, 除了過(guò)于復(fù)雜外,還違背了docker的初衷。

docker本來(lái)就是想 輕量化,我其實(shí)按照這個(gè)思路嘗試過(guò),由于自己Linux指令不熟以及對(duì)nginx不是很了解,因此還是比較痛苦的,并且我發(fā)現(xiàn)進(jìn)入nginx容器的內(nèi)部環(huán)境,前面也說(shuō)過(guò)這里面其實(shí)就是一個(gè)小的Linux環(huán)境,為了節(jié)省內(nèi)存開(kāi)銷和提供資源重用性,docker去掉了很多傳統(tǒng)Linux鏡像具有的功能,例如 vim等基礎(chǔ)工具包,還需要自己下載,為了編輯文件下載這個(gè)然后刪除(且不說(shuō)刪除方法的問(wèn)題),屬實(shí)太麻煩了。

其實(shí),是有更好的解決方法的,雖然容器與服務(wù)器主機(jī)之間貌似沒(méi)有多余的交互,除了一個(gè)端口映射外,其實(shí)是可以使用文件映射的。因?yàn)檫@篇主要是針對(duì)應(yīng)用的,所以很多理論知識(shí)就先不談。其實(shí)是可以將我們下載的nginx的配置文件直接映射到使用服務(wù)器主機(jī)上的nginx的配置文件。之所以使用docker,主要還是防止版本等的沖突造成項(xiàng)目部署出現(xiàn)“奇奇怪怪”的問(wèn)題。但是即使軟件(nginx)更新了,軟件也不至于會(huì)影響前一個(gè)版本的配置(使用方式)。一般情況下,都是提高軟件本身的性能和穩(wěn)定性。

按照上面的這個(gè)方法,就需要首先找到nginx在服務(wù)上的配置文件的具體位置了。找的話比較好找,進(jìn)入nginx軟件下面找nginx.conf文件就行:

咱也不多說(shuō)了,這里存在最大的問(wèn)題是,直接將nginx文件映射之后,由于我服務(wù)器使用的centos鏡像,docker里面由于考慮到輕量化,只保留了核心,很多輔助功能被拋棄了,也就導(dǎo)致了存在服務(wù)器文件和docker容器的Linux文件不匹配,簡(jiǎn)單來(lái)說(shuō)就是一個(gè)容器其實(shí)運(yùn)行在一個(gè)輕量化的Linux環(huán)境中,你把服務(wù)器中的配置文件復(fù)制進(jìn)去之后,配置文件可能還有相互引入,這樣換了環(huán)境直接寄,根本找不到引入的文件。你可能想說(shuō)我都引入,十分復(fù)雜。所以,還是得搞明白nginx在網(wǎng)站運(yùn)行時(shí)到底干了些什么。

3.簡(jiǎn)單聊聊nginx

如果你的時(shí)間充裕,推薦去看一下 B站狂神說(shuō)給的40分鐘左右的教程,開(kāi)個(gè)倍速了解一下比較快,通俗易懂。簡(jiǎn)單來(lái)說(shuō) nginx基于C語(yǔ)言開(kāi)發(fā),速度快,支持5萬(wàn)并發(fā)(Tomcat不到1000),可以用來(lái)配置負(fù)載均衡、反向代理、動(dòng)靜結(jié)合。我的理解如下:

(1)負(fù)載均衡:由于網(wǎng)絡(luò)用戶逐漸龐大,因此很多廠商實(shí)際使用多臺(tái)服務(wù)器,nginx充當(dāng)服務(wù)器的代理,將流量按照需要“平均分配”(有時(shí)候需要結(jié)合不同服務(wù)器的性能給不同權(quán)重)給這些服務(wù)器。對(duì)于session不同服務(wù)器的共享,雖然這個(gè)代理能插一手,但是由于性能等原因一般還是選擇使用redis;

(2)反向代理:首先要明白正向代理,正向代理指代理在客戶端出現(xiàn),“健康上網(wǎng)”就是一種(前端的代理也算),反向代理指的是在服務(wù)器上面代理,服務(wù)器為了提高性能讓別人幫著處理;也正是代理的強(qiáng)大,所以高并發(fā)通常會(huì)有他的影子,可以不斷地延伸,利用多個(gè)子級(jí)nginx將流量壓力給抵消掉,也就是構(gòu)建一個(gè)服務(wù)器集群。

(3)動(dòng)靜結(jié)合:其實(shí)就是靜態(tài)資源緩存在nginx這樣就不用再去服務(wù)器請(qǐng)求了,因?yàn)檫@個(gè)很經(jīng)打,這樣能夠減少站在它后面瑟瑟發(fā)抖的服務(wù)器的壓力。

這里貼一篇講得比較完整的文章吧:超級(jí)詳細(xì)的nginx講解

4.首先給主站點(diǎn)配置域名

為了方便更好地說(shuō)明問(wèn)題,我這里重新做人,把服務(wù)器上面的nginx先給卸載了:

首先,為了安全起見(jiàn),先隨便開(kāi)一個(gè)容器,將容器里面的nginx相關(guān)文件從容器復(fù)制到服務(wù)器中:

docker run --name=nginx -d -p 80:80 nginx

在服務(wù)器中創(chuàng)建用來(lái)映射的文件目錄,文件映射最好是使用文件夾,因?yàn)楹竺嫖覀兛赡苄枰谠成涞幕A(chǔ)上新增其他配置,使用文件能夠提高擴(kuò)展性,官方也是這么推薦的:

mkdir -p /data/nginx

將阿里云中的文件導(dǎo)出用于備份(防止文件缺損)( cp 容器名:容器中的路徑 備份出來(lái)的服務(wù)器路徑):

docker cp nginx:/etc/nginx/nginx.conf /data/nginx/nginx.conf docker cp nginx:/etc/nginx/conf.d/ /data/nginx/ docker cp nginx:/usr/share/nginx/html/ /data/nginx/ docker cp nginx:/var/log/nginx/ /data/nginx/

為了由于緩存產(chǎn)生不必要的誤會(huì),我這里直接換瀏覽器訪問(wèn),確保nginx能夠正常使用(也就是我們拷貝出來(lái)的文件有效):

接下來(lái)就是比較關(guān)鍵的一步了,刪除容器,利用服務(wù)器上面的文件重新構(gòu)建文件映射關(guān)系:

docker run --name=nginx -d -p 80:80-p 443:443-v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf.d/:/etc/nginx/conf.d/ -v /data/nginx/nginx/:/var/log/nginx/nginx

對(duì)上面的指令做出如下幾點(diǎn)解釋:

(1) -p 80:80 -p 443:443,由于需要使用https和域名訪問(wèn),所以需要額外增加443端口的映射;

(2) -d,nginx是后臺(tái)代理,需要長(zhǎng)期運(yùn)行;

(3) -v

/data/nginx/html:/usr/share/nginx/html映射nginx的 html頁(yè)面(主要是默認(rèn)頁(yè)和報(bào)錯(cuò)頁(yè));

(4) -v

/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf,映射niginx的配置頁(yè);

(5) -v

/data/nginx/conf.d/:/etc/nginx/conf.d/,映射nginx的擴(kuò)展配置頁(yè);

(6) -v

/data/nginx/logs:/var/log/nginx,映射nginx的日志文件。

最終得到的效果如下:

接下來(lái),簡(jiǎn)單說(shuō)一下nginx的配置文件的意思:

usernginx; #指定系統(tǒng)用戶,這里使用的是nginx創(chuàng)建的用戶組worker_processesauto;#定義nginx對(duì)外提供web服務(wù)時(shí)的進(jìn)程數(shù)error_log/var/log/nginx/error.log notice;#錯(cuò)誤日志信息存儲(chǔ)位置pid/var/run/nginx.pid;#進(jìn)程控制塊events{ worker_connections1024;#進(jìn)程同時(shí)打開(kāi)的貴州省關(guān)鍵詞seo排名最大連接數(shù)} http{ include/etc/nginx/mime.types;#支持的類型,這個(gè)可以聯(lián)想一下nodeJS里面的那個(gè)第三方依賴default_typeapplication/octet-stream;#默認(rèn)類型log_formatmain '$remote_addr- $remote_user[$time_local] "$request" ''$status$body_bytes_sent"$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#日志格式access_log/var/log/nginx/access.log main;#訪問(wèn)日志sendfileon;#開(kāi)啟文件發(fā)送功能#tcp_nopush on;keepalive_timeout65;#長(zhǎng)連接過(guò)期時(shí)間#gzip on;include/etc/nginx/conf.d/*.conf;#這個(gè)非常重要,引入conf.d下面的全部.conf后綴的配置文件}

官方給了一個(gè)默認(rèn)的配置文件( default.conf):

server{ listen80; listen[::]:80; server_namelocalhost; location/ { #這里其實(shí)是一個(gè)攔截器root/usr/share/nginx/html; #站點(diǎn)位置,這里需要使用容器里面的路徑而不是服務(wù)器,因?yàn)樽罱K容器環(huán)境對(duì)因?yàn)長(zhǎng)inux環(huán)境indexindex.html index.htm; #知道php應(yīng)該的都懂,這里是默認(rèn)展示的頁(yè)面配置} #報(bào)錯(cuò)頁(yè)面處理error_page500502503504/50x.html; location= /50x.html { root/usr/share/nginx/html; } }

好嘞,咱接下來(lái)直接配置域名訪問(wèn)。如果你之前也是使用的寶塔面板,那么恭喜你,你只需要把阿里云證書文件夾( cert)找到復(fù)制到 /data/nginx/conf.d目錄下(為什么放在這兒?因?yàn)檫@個(gè)映射的時(shí)候使用的是目錄,而且挨著配置文件最近,方便修改),如果不是的話你得去阿里云重新下載,然后新建文件夾,把證書放進(jìn)去,也不難的:

如果你不信,可以進(jìn)入容器查看,舉例如下:

這里把修改之后的文件放在下面供大家參考(基本上你只需要 修改域名和域名對(duì)應(yīng)的證書,因?yàn)槲疫@里其實(shí)沒(méi)有部署任何站點(diǎn),特別強(qiáng)調(diào)證書的路徑是 /etc/nginx/conf.d,不是 /data/nginx/conf.d,容器最終跑的位置是在docker提供的Linux環(huán)境中):

server{ listen80; listen443ssl http2; server_namenightowl.top; location/ { root/usr/share/nginx/html; indexindex.html index.htm; } if($server_port!~ 443){ rewrite^(/.*)$https://$host$1permanent; } ssl_certificate/etc/nginx/conf.d/cert/nightowl.top/fullchain.pem; ssl_certificate_key/etc/nginx/conf.d/cert/nightowl.top/privkey.pem; ssl_protocolsTLSv1.2TLSv1.3; ssl_ciphersEECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphersoff; ssl_session_cacheshared:SSL:10m; ssl_session_timeout10m; add_headerStrict-Transport-Security "max-age=31536000"; }

誒,跑不了,不保熟是吧?

這里還需要一步調(diào)整,將docker對(duì)應(yīng)的nginx容器的配置修改一下(這里是參考了大佬的文章),修改方法如下:

(1)定制運(yùn)行docker服務(wù), systemctl stop docker;

(2)在服務(wù)器中找到容器的配置文件, /var/lib/docker/容器ID/hostconfig.json;

(3)編輯,找到 "PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"80"}]]},替換成如下json配置項(xiàng):

"PortBindings":{ "80/tcp":[{ "HostIp":"","HostPort":"80"}],"443/tcp":[{ "HostIp":"","HostPort":"443"}]},

(4)重啟docker服務(wù), systemctl start docker,然后重新運(yùn)行容器。

成功效果如下:

最后直接快速還賬:

直接給出路由轉(zhuǎn)發(fā)思路的nginx配置如下:

server{ listen443ssl http2; # listen 80;server_namevisualization.admin.nightowl.top; if($server_port!~ 443){ rewrite^(/.*)$https://$host$1permanent; } ssl_certiseo怎么提高關(guān)鍵詞排名外包ficate/etc/nginx/conf.d/cert/visualization.admin.nightowl.top/fullchain.pem; ssl_certificate_key/etc/nginx/conf.d/cert/visualization.admin.nightowl.top/privkey.pem; ssl_protocolsTLSv1.1TLSv1.2TLSv1.3; ssl_ciphersEECDH+CHACHA20:EECDH+CHA網(wǎng)站做seo一直沒(méi)排名CHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_cipherson; ssl_session_cacheshared:SSL:10m; ssl_session_timeout10m; add_headerStrict-Transport-Security "max-age=31536000"; error_page497https://$host$request_uri; location/ { proxy_passhttp://8.136.14.176:88/; proxy_set_headerHost $host:$server_port; proxy_set_headerX-Real-IP $remote_addr; proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_headerREMOTE-HOST $remote_addr; add_headerX-Cache $upstream_cache_status; proxy_connect_timeout30s; proxy_read_timeout86400s; proxy_send_timeout30s; proxy_http_version1.1; proxy_set_headerUpgrade $http_upgrade; proxy_set_headerConnection "upgrade"; } }

以上是潮人地東莞seo博客跟大家分享關(guān)于seo技術(shù):如何實(shí)現(xiàn)docker容器域名綁定?,服務(wù)器綁定域名分享教程等問(wèn)題,希望能對(duì)大家有所幫助,若有不足之處,請(qǐng)諒解,我們大家可以一起討論關(guān)于網(wǎng)站seo優(yōu)化排名的技巧,一起學(xué)習(xí),以上內(nèi)容僅供參考。

閱讀全文
本文標(biāo)題"seo技術(shù):如何實(shí)現(xiàn)docker容器域名綁定?,服務(wù)器綁定域名分享教程":http://www.420113.com/jsfx_24801.html
本文版權(quán)歸潮人地seo博客所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須在文章頁(yè)面給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
標(biāo)簽:
合作伙伴
主站蜘蛛池模板: 97精品人妻系列无码人妻| 国产高清无码二区 | 亚洲AV无码成人精品区日韩| 亚洲av无码成人精品国产| 中文字幕无码日韩专区| 亚洲综合一区无码精品| 亚洲自偷自偷偷色无码中文| 久久Av无码精品人妻系列| yy111111电影院少妇影院无码| 精品无码人妻一区二区三区品| 久久无码一区二区三区少妇| 无码国产精品久久一区免费| 无码孕妇孕交在线观看| 中文成人无码精品久久久不卡| 免费无码成人AV在线播放不卡| av无码精品一区二区三区四区| 99无码人妻一区二区三区免费| 国产亚洲精品a在线无码| 亚洲人成国产精品无码| 人妻少妇精品无码专区漫画| 99无码精品二区在线视频| 免费无码又爽又刺激网站直播| 无码国产69精品久久久久孕妇| 一本色道久久综合无码人妻| 精品久久久久久无码专区| 亚洲AV无码成人精品区在线观看| 久久综合一区二区无码| 国产麻豆天美果冻无码视频| 无码少妇一区二区浪潮av| 免费无遮挡无码视频网站| 午夜寂寞视频无码专区| 深夜a级毛片免费无码| 国产精品无码av片在线观看播| 欧洲黑大粗无码免费| 人妻精品无码一区二区三区| 黑人巨大无码中文字幕无码| 无码专区永久免费AV网站| 精品亚洲av无码一区二区柚蜜| 性生交片免费无码看人| 日日摸日日碰人妻无码| 免费无码又爽又黄又刺激网站|