Docker nginx部署二級(jí)域名訪問多個(gè)web項(xiàng)目

前言

情況是這樣的病涨,我借了朋友的阿里云服務(wù)器 用docker 部署一下自己的網(wǎng)站(方便管理)。他的服務(wù)器自身也用nginx掛了一個(gè)網(wǎng)站,端口也用的是默認(rèn)的80端口顺少。服務(wù)器有域名潭兽,keep999.cn

我的是docker里面添加的nginx容器倦始,代理的靜態(tài)網(wǎng)頁。docker映射的是8080端口出來山卦,所以鞋邑,訪問的話,需要

keep999.cn:8080來訪問≌巳兀現(xiàn)在的話枚碗,我不想加端口訪問了,就想用域名(懶得寫端口)铸本,于是乎肮雨,就要開始想辦法解決這個(gè)問題了。

[TOC]

收獲

學(xué)習(xí)完這篇文章你將收獲:

  • docker創(chuàng)建nginx容器
  • nginx映射配置文件 網(wǎng)頁目錄 log目錄
  • docker部署多個(gè)web網(wǎng)站
  • 二級(jí)域名轉(zhuǎn)發(fā)到不同web網(wǎng)站
  • 阿里云設(shè)置云解析

正題

具體做法:

一箱玷、使用二級(jí)域名+轉(zhuǎn)發(fā)來訪問我的網(wǎng)站

二怨规、使用域名解析

一、使用二級(jí)域名+轉(zhuǎn)發(fā)來訪問我的網(wǎng)站

大致方法:

docker容器3個(gè)nginx容器

1锡足、mynginx 我的網(wǎng)站部署的nginx 端口8080

2波丰、web_nginx 朋友的網(wǎng)站部署的nginx 端口8081

3、proxy_nginx 用于代理轉(zhuǎn)發(fā)的nginx 端口80

先說這種方法舶得,是比較理想掰烟,比較優(yōu)質(zhì)的,統(tǒng)一使用nginx來做入口的代理和轉(zhuǎn)發(fā)沐批。需要注意的是纫骑,proxy_nginx的端口,必須是80珠插,不是其他的惧磺。因?yàn)槟銥g覽器訪問域名,默認(rèn)不寫端口捻撑,就是80端口磨隘。

1缤底、首先要阿里云配置一個(gè)二級(jí)域名。

image-20200707111501684

配置安全組番捂,我這里直接開放了80【proxy_nginx】个唧、8080-8100【部署多個(gè)網(wǎng)站】多個(gè)端口

image-20200707111415458

2、docker創(chuàng)建容器设预,并且映射配置文件等

1)docker創(chuàng)建mynginx 部署我的網(wǎng)站

新建一個(gè)nginx去把配置文件拷出來供映射的時(shí)候使用

docker run nginx

自己新建一個(gè)目錄管理nginx徙歼,比如我這里是/mydockerdata/nginx 用這個(gè)目錄來管理,并創(chuàng)建dist log目錄

mkdir log
mkdir dist 

docker ps 查看container 的ID

拷貝配置文件到自己的管理目錄下面

nginx docker cp 【CONTAINER ID】 :/etc/nginx/nginx.conf /mydockerdata/nginx/

拷貝完成之后鳖枕,可以把新建的nginx刪了魄梯,重新創(chuàng)建自己的

docker rm nginx -f 

上傳靜態(tài)網(wǎng)站的到/mydockerdata/nginx/dist下面(這個(gè)目錄就是存放網(wǎng)頁的)

scp -r  /Users/jafir/Documents/myadmin/dist/  root@keep999.cn:/mydockerdata/nginx/

創(chuàng)建nginx容器

docker run 
-p 8080:80 映射端口本機(jī)8080到容器80
--name mynginx container的名字mynginx
-v /mydockerdata/nginx/log/:/var/log/nginx 映射log文件目錄
-v /mydockerdata/nginx/nginx.conf:/etc/nginx/nginx.conf 映射配置文件
-v /mydockerdata/nginx/dist/:/usr/share/nginx/html 映射網(wǎng)頁存放目錄
-d 后臺(tái)運(yùn)行
nginx 鏡像

注意這里本機(jī)的ip是8080,容器內(nèi)是80(多個(gè)容器內(nèi)的80端口是不會(huì)相互沖突影響的宾符,因?yàn)閐ocker的容器就是隔離的)酿秸,外界訪問是通過8080

修改本機(jī)nginx.conf的配置即可修改容器里面的nginx.conf配置(因?yàn)樽隽擞成洌?/p>

vim /mydockerdata/nginx/nginx.conf

http節(jié)點(diǎn)下添加 server

server {
        listen       80;         #監(jiān)聽的端口
        server_name  keep999.cn;    #監(jiān)聽的URL
        root  /usr/share/nginx/html;           #項(xiàng)目路徑
        index index.html;
        # Any route that doesn't have a file extension (e.g. /devices)
        location / {
            try_files $uri $uri/ /index.html;
        }
    
    }

按esc,:wq 保存成功 重啟mynginx就可以了

docker restart mynginx

這樣就成功了魏烫,訪問http://47.108.59.73:8080 或 http://keep999.cn:8080就能訪問網(wǎng)站了

2) 按照跟1)一樣的方法辣苏,新建/mydockerdata/web_nginx目錄來管理朋友的網(wǎng)站

由于朋友的網(wǎng)站路徑是在/var/www/html下,所以創(chuàng)建容器的時(shí)候網(wǎng)站路徑映射要改一下

docker run -p 8081:80 --name web_nginx -v /mydockerdata/web_nginx/log/:/var/log/nginx -v /mydockerdata/web_nginx/nginx.conf:/etc/nginx/nginx.conf -v /var/www/html:/usr/share/nginx/html -d nginx
server {
        listen       80;         #監(jiān)聽的端口
        server_name  keep999.cn;    #監(jiān)聽的URL
        root  /usr/share/nginx/html;           #項(xiàng)目路徑
        index index.html;
        # Any route that doesn't have a file extension (e.g. /devices)
        location / {
            try_files $uri $uri/ /index.html;
        }
   
    }

配置文件也是一樣的哄褒,兩個(gè)項(xiàng)目的配置文件最好分開

創(chuàng)建好了之后稀蟋,就能通過http://47.108.59.73:8081來訪問他的網(wǎng)站了

3)創(chuàng)建proxy_nginx來代理和二級(jí)域名轉(zhuǎn)發(fā)

創(chuàng)建nginx的管理目錄也是一樣的,/mydockerdata/proxy_nginx目錄來管理

不過80原來是被朋友的nginx給占用了呐赡,可以先把它給殺掉退客,kill -9 pid,再創(chuàng)建我們的容器

docker run -p 80:80 --name proxy_nginx -v /mydockerdata/proxy_nginx/log/:/var/log/nginx -v /mydockerdata/proxy_nginx/nginx.conf:/etc/nginx/nginx.conf -v /mydockerdata/proxy_nginx/dist/:/usr/share/nginx/html -d nginx

這里的配置文件就比較重要了

    server {
        listen       80;         #監(jiān)聽的端口
        server_name  a.keep999.cn;    #監(jiān)聽的URL
        location / {
           proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://47.108.59.73:8080;
        }
    }
    server {
        listen       80;         #監(jiān)聽的端口
        server_name  keep999.cn;    #監(jiān)聽的URL
        location / {
           proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://47.108.59.73:8081;
        }
    }

a.keep999.cn 轉(zhuǎn)發(fā)到我的項(xiàng)目罚舱,我的項(xiàng)目訪問是http://47.108.59.73:8080

keep999.cn 轉(zhuǎn)發(fā)給他的項(xiàng)目井辜,他的項(xiàng)目訪問是http://47.108.59.73:8081

修改了之后,docker restart proxy_nginx就可以咯

整個(gè)目錄樹結(jié)構(gòu)/mydockerdata/下的

│─── mynginx  我的項(xiàng)目
|   ├──- dist
|   ├── log
|   │   ├── access.log
|   │   └── error.log
|   └── nginx.conf
├── proxy_nginx  代理
│   ├── dist
│   ├── log
│   │   ├── access.log
│   │   └── error.log
│   └── nginx.conf
└── web_nginx 朋友的項(xiàng)目
    ├── dist
    ├── log
    │   ├── access.log
    │   └── error.log
    └── nginx.conf
image-20200707115009010
image-20200707115721719

二管闷、使用域名解析

第二種的話就很簡單了,直接使用aliyun的云解析窃肠。

首先還是跟(一)的一些步驟一樣包个,生成我的項(xiàng)目的nginx容器,并使得keep999.cn:8080可以訪問到我的項(xiàng)目

然后就添加云解析冤留,【隱性u(píng)rl】

image

這樣的話碧囊,就可以通過b.keep999.cn來訪問的的項(xiàng)目了。

但是呢纤怒,為啥沒有推薦這種寫法呢糯而?因?yàn)楸旧砼笥训姆?wù)器 nginx和docker倆同級(jí)的,按道理應(yīng)該全部交給docker來創(chuàng)建容器泊窘,方便管理熄驼,也不占用80端口像寒,可操作性更強(qiáng)。也是能夠更好的去了解和掌握docker與容器的關(guān)系瓜贾,docker與本機(jī)的關(guān)系诺祸。去學(xué)習(xí)docker及其微服務(wù)方面的更多的知識(shí)。

總結(jié)

nginx還是很強(qiáng)大的祭芦,功能遠(yuǎn)不止我們用到的這些筷笨。

其三大功能:反向代理、負(fù)載均衡龟劲、靜態(tài)資源服務(wù)器胃夏,我們這里用到了反向代理、靜態(tài)網(wǎng)站昌跌,還沒有用到負(fù)載均衡仰禀。負(fù)載均衡,簡單點(diǎn)說避矢,就是當(dāng)有多臺(tái)服務(wù)器的時(shí)候悼瘾,會(huì)根據(jù)設(shè)置的策略分散請(qǐng)求到不同的服務(wù)器上,分擔(dān)各個(gè)服務(wù)器的壓力审胸。有興趣的可以自己去嘗試一下亥宿。

接下來,我們的接口也通了砂沛,覺得還可以進(jìn)一步提升一下安全性烫扼,所以,下一篇碍庵,我們將繼續(xù)映企,給網(wǎng)站訪問加上https,學(xué)會(huì)申請(qǐng)免費(fèi)的證書和使用nginx配置ssl静浴,請(qǐng)參看Docker nginx https二級(jí)域名無端口訪問多個(gè)web項(xiàng)目

關(guān)于作者

作者是一個(gè)熱愛學(xué)習(xí)堰氓、開源、分享苹享,傳播正能量双絮,喜歡打籃球、頭發(fā)還很多的程序員-得问。-

熱烈歡迎大家關(guān)注囤攀、點(diǎn)贊、評(píng)論交流宫纬!

簡書:http://www.reibang.com/u/d234d1569eed

github:https://github.com/fly7632785

CSDN:https://blog.csdn.net/fly7632785

掘金:https://juejin.im/user/5efd8d205188252e58582dc7/posts

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末焚挠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子漓骚,更是在濱河造成了極大的恐慌蝌衔,老刑警劉巖榛泛,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胚委,居然都是意外死亡挟鸠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門亩冬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艘希,“玉大人,你說我怎么就攤上這事硅急「蚕恚” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵营袜,是天一觀的道長撒顿。 經(jīng)常有香客問我,道長荚板,這世上最難降的妖魔是什么凤壁? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮跪另,結(jié)果婚禮上拧抖,老公的妹妹穿的比我還像新娘。我一直安慰自己免绿,他們只是感情好唧席,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘲驾,像睡著了一般淌哟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辽故,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天徒仓,我揣著相機(jī)與錄音,去河邊找鬼誊垢。 笑死蓬衡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的彤枢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼筒饰,長吁一口氣:“原來是場噩夢啊……” “哼缴啡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瓷们,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤业栅,失蹤者是張志新(化名)和其女友劉穎秒咐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碘裕,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡携取,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了帮孔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雷滋。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖文兢,靈堂內(nèi)的尸體忽然破棺而出晤斩,到底是詐尸還是另有隱情,我是刑警寧澤姆坚,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布澳泵,位于F島的核電站,受9級(jí)特大地震影響兼呵,放射性物質(zhì)發(fā)生泄漏兔辅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一击喂、第九天 我趴在偏房一處隱蔽的房頂上張望维苔。 院中可真熱鬧,春花似錦茫负、人聲如沸蕉鸳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潮尝。三九已至,卻和暖如春饿序,著一層夾襖步出監(jiān)牢的瞬間勉失,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工原探, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乱凿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓咽弦,卻偏偏與公主長得像徒蟆,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子型型,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359