Liunx中使用Docker安裝.配置Nginx,SSL證書

什么是Nginx?

Nginx是一款自由的、開源的、高性能的HTTP服務(wù)器和反向代理服務(wù)器;同時也是一個IMAP、POP3、SMTP代理服務(wù)器;Nginx可以作為一個HTTP服務(wù)器進行網(wǎng)站的發(fā)布處理,另外Nginx可以作為反向代理進行負載均衡的實現(xiàn)。

安裝

1.拉取鏡像

docker pull nginx

2.創(chuàng)建nginx容器

docker run -di --name=容器名稱 -p 本地端口:映射端口(比如80:80) nginx
//-p 假如要監(jiān)聽多個端口,可多寫例:-p 80:80 -p 443:443
使用

我們安裝好了之后,查看容器是否在運行,執(zhí)行命令

[root@VM_0_8_centos ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                      NAMES
51451b4303a8        nginx               "nginx -g 'daemon of…"   28 minutes ago      Up 28 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   mynginx
965f45a82cff        mysql               "docker-entrypoint.s…"   3 days ago          Up 3 days           33060/tcp, 0.0.0.0:33306->3306/tcp         tensquare_mysql
aa3f9a98ec8d        redis               "docker-entrypoint.s…"   3 days ago          Up 3 days           0.0.0.0:6379->6379/tcp                     myredis

可以清楚的看到,自己創(chuàng)建的容器是否在運行
一些簡單的這方面的指令

docker ps //查看運行的容器
docker ps -a //查看所有容器
docker restart 容器名稱 //重啟容器
docker start 容器名稱 //啟動容器
docker stop 容器名稱 //重啟容器
docker rm 容器名稱 //刪除容器
dockers exec -it 容器名稱 /bin/bash //進入容器
exit //退出容器
文件掛載

我們選擇docker運行nginx服務(wù)器的時候,一般來說使用文件掛載會好一些,文件掛載步驟
1.創(chuàng)建一個臨時容器 docker run -d --name nginx_test -p 9000:9000 nginx
2.進入該容器 docker exec -it nginx_test /bin/bash
3.將目錄/etc/nginx/復(fù)制到本地目錄/opt/local docker cp nginx_test:/etc/nginx/ /opt/local
4.停止該容器 docker stop nginx_test
5.刪除該容器 docker rm nginx_test
6.創(chuàng)建新的容器掛載本地目錄 docker run -di --name mynginx -p 80:80 -v /opt/local/nginx/logs:/var/log/nginx -v /opt/local/nginx:/etc/nginx nginx
7.容器的配置文件,就在本地的/opt/local/nginx配置即可
8.瀏覽器打開服務(wù)器ip地址,顯示nginx相關(guān),即配置成功

端口映射轉(zhuǎn)發(fā)配置

一般用于一個服務(wù)器掛載多個服務(wù),多個域名的時候,我們使用到這個
1.進入/opt/local/nginx/conf.d目錄 cd /opt/local/nginx/conf.d
2.復(fù)制一份default.conf文件 cp default.conf my.conf
3.修改重要配置,如下,新增一個域名監(jiān)聽則新增一個文件監(jiān)聽然后轉(zhuǎn)發(fā)即可

    listen       80; #監(jiān)聽的端口
    server_name  baidu.com www.baidu.com;#填寫監(jiān)聽的域名
    location / {
        proxy_pass http://ip:端口;
    }
ssl證書的配置

ssl證書是監(jiān)聽443端口,但是我們網(wǎng)絡(luò)請求的時候,不會去輸入https請求頭,所以默認請求的是80端口,我們要做一個判斷,假如是80端口則進行轉(zhuǎn)發(fā)到443端口
按照以下配置

server {
    listen 80;
    listen 443 ssl;
    server_name  www.wocusx.cn wocusx.cn;
    ssl on;
    ssl_certificate 1_xxxxx_bundle.crt;
    ssl_certificate_key 2_xxxxx.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    if ($server_port = 80) {
        return 301 https://$server_name$request_uri;
        }
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
        }
     error_page 497 https://$server_name$request_uri;
}

注意

1.每次修改conf配置文件需要重啟nginx
2.nignx監(jiān)聽的端口由創(chuàng)建的時候-p命令決定,如已經(jīng)創(chuàng)建,需要修改進入到該nginx容器/var/lib/docker/containers/{容器 ID+ 一些字符串}/hostconfig.json中修改

"PortBindings":{"容器端口 /tcp":[{"HostIp":"","HostPort":"宿主機端口"}]

同時修改同目錄下的 config.v2.json

"Ports":{"容器端口 /tcp":[{"HostIp":"0.0.0.0","HostPort":"宿主機端口"}]} 

然后重啟容器即可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容