【微服務(wù)部署】七、使用Docker安裝Nginx并配置免費的SSL證書步驟詳解

1. 創(chuàng)建Nginx宿主機掛載目錄并賦權(quán)
mkdir -p /opt/container/nginx/html /opt/container/portal /opt/container/nginx/www /opt/container/nginx/logs /opt/container/nginx/etc /etc/ssl/nginx

chmod -R 777 /opt/container/nginx/html /opt/container/portal /opt/container/nginx/www /opt/container/nginx/logs /opt/container/nginx/etc /etc/ssl/nginx

2. 默認映射沒有配置文件卧檐,需要將容器中的配置文件復(fù)制到目錄下

??通過Docker安裝的Nginx墓懂,映射的目錄往往沒有默認的配置文件和頁面,如果隨便從其他位置復(fù)制霉囚,如果配置文件版本不同捕仔,會導(dǎo)致Nginx無法訪問。為了解決這個問題盈罐,先創(chuàng)建一個Nginx容器榜跌,將配置文件和默認的頁面提前復(fù)制到宿主機的映射目錄,再把容器刪除即可盅粪。我們只是用到它的默認配置文件和頁面钓葫,后面步驟是具體搭建Nginx。

docker pull nginx
docker run --name nginx -p 80:80 -d nginx
# 復(fù)制nginx默認頁面
docker cp nginx:/usr/share/nginx/html/* /opt/container/nginx/html
# 復(fù)制 所有的配置文件
docker cp nginx:/etc/nginx/* /opt/container/nginx/etc

# 用完之后票顾,把容器刪除
docker stop 容器id
docker rm 容器id
3. 編寫docker-compose-nginx.yml文件

??習(xí)慣用docker-compose搭建Docker服務(wù)础浮,感覺可以對配置等內(nèi)容留檔,當然你也可以選擇直接使用Docker命令創(chuàng)建Nginx奠骄。

  • /opt/container/nginx/html 映射Nginx默認頁面存放目錄
  • /opt/container/portal 映射開發(fā)的應(yīng)用前端頁面存放目錄
  • /etc/ssl/nginx 存放Nginx SSL證書

(二選一)docker-compose的方式創(chuàng)建Nginx:

version: '3'
services:
    ##nginx配置
    nginx:
      image: nginx:latest
      restart: always
      container_name: nginx
      environment:
        - TZ=Asia/Shanghai
      ports:
        - 8000:80
        - 4443:443
      volumes:
        - /opt/container/nginx/html:/usr/share/nginx/html/
        - /opt/container/portal:/nginx/html/
        - /opt/container/nginx/www:/var/www
        - /opt/container/nginx/logs:/var/log/nginx
        - /opt/container/nginx/etc:/etc/nginx
        - "/etc/localtime:/etc/localtime"
        - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"
        - /etc/ssl/nginx:/nginx/ssl

(二選一)docker命令的方式創(chuàng)建Nginx:

docker run \
-p 80:80 \
-p 443:443 \
--name=nginx \
-e TZ="Asia/Shanghai" \
--restart=always \
-v /opt/container/nginx/html:/usr/share/nginx/html \
-v /opt/container/portal:/nginx/html \
-v /opt/container/nginx/www:/var/www \
-v /opt/container/nginx/logs:/var/log/nginx \
-v /opt/container/nginx/etc:/etc/nginx \
-v /etc/localtime:/etc/localtime \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/timezone \
-v /etc/ssl/nginx:/nginx/ssl \
-d nginx:latest
4. docker-compose啟動Nginx命令

如果使用docker命令安裝豆同,則不需要這一步驟。

cd /opt/software
docker-compose -f docker-compose-nginx.yml up -d
5. 在云服務(wù)器上申請免費的SSL證書含鳞,各大云服務(wù)器廠商都可以免費申請影锈,這里以阿里云為例,免費申請SSL證書
  • 登錄阿里云控制臺蝉绷,進入[數(shù)字證書管理服務(wù)] > [SSL證書] > [免費證書]


    image.png
  • 點擊 [創(chuàng)建證書] > [證書申請]鸭廷,然后按要求填寫申請信息,然后提交審核


    image.png
  • 等待申請通過潜必,在證書列表中,就會看到已申請的SSL證書沃但,然后點擊下載按鈕磁滚,選擇需要部署的服務(wù)器類型,我們這里使用的是nginx宵晚,所以選擇下載nginx服務(wù)器類型的SSL證書垂攘。


    image.png

    image.png
  • 下載成功后,可以得到一個包含域名的zip包淤刃,里面有.key和.pem文件


    image.png
6. 將下載的SSL證書.key和.pem文件上傳到Linux服務(wù)器/etc/ssl/nginx目錄晒他,這里因為我們創(chuàng)建docker容器時指定的映射目錄是這個。
7. 修改nginx.conf配置文件逸贾,將證書配置到對應(yīng)域名配置中陨仅,然后重啟nginx服務(wù)津滞,域名就可以通過https訪問了。
    server {
        listen 80;
        listen 443 ssl;
        ssl_certificate /nginx/ssl/證書名稱.pem;
        ssl_certificate_key /nginx/ssl/證書名稱.key;
        server_name  域名;

        gzip on;
        gzip_buffers 32 4K;
        gzip_comp_level 6;
        gzip_min_length 100;
        gzip_types application/javascript text/css text/xml text/plain application/x-javascript image/jpeg image/gif image/png;
        gzip_disable "MSIE [1-6]\."; 
        gzip_vary on;
        #charset koi8-r;
        access_log  /var/log/nginx/portal.access.log  main;
        location / {
            proxy_set_header Host $http_host;               
            proxy_set_header X-Real-Ip $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://172.17.0.1:8080/;
        }
    }

??免費的證書有效期只有一年灼伤,而且是單域名證書触徐,對于小型項目或者剛剛起步的網(wǎng)站,可以節(jié)省成本狐赡,就是在操作上需要每年重新申請一次撞鹉。一般云服務(wù)廠商都會有證書申請個數(shù)限制,但對于初期項目來說基本夠用了颖侄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸟雏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子览祖,更是在濱河造成了極大的恐慌孝鹊,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件穴墅,死亡現(xiàn)場離奇詭異惶室,居然都是意外死亡,警方通過查閱死者的電腦和手機玄货,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門皇钞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人松捉,你說我怎么就攤上這事夹界。” “怎么了隘世?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵可柿,是天一觀的道長。 經(jīng)常有香客問我丙者,道長复斥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任械媒,我火速辦了婚禮目锭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纷捞。我一直安慰自己痢虹,他們只是感情好,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布主儡。 她就那樣靜靜地躺著奖唯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪糜值。 梳的紋絲不亂的頭發(fā)上丰捷,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天坯墨,我揣著相機與錄音,去河邊找鬼瓢阴。 笑死畅蹂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的荣恐。 我是一名探鬼主播液斜,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼叠穆!你這毒婦竟也來了少漆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤硼被,失蹤者是張志新(化名)和其女友劉穎示损,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚷硫,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡检访,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了仔掸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脆贵。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖起暮,靈堂內(nèi)的尸體忽然破棺而出卖氨,到底是詐尸還是另有隱情,我是刑警寧澤负懦,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布筒捺,位于F島的核電站,受9級特大地震影響纸厉,放射性物質(zhì)發(fā)生泄漏系吭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一颗品、第九天 我趴在偏房一處隱蔽的房頂上張望肯尺。 院中可真熱鬧,春花似錦抛猫、人聲如沸蟆盹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至峰档,卻和暖如春败匹,著一層夾襖步出監(jiān)牢的瞬間寨昙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工掀亩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留舔哪,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓槽棍,卻偏偏與公主長得像捉蚤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子炼七,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容