Docker搭建Nginx


參考

https://www.runoob.com/docker/docker-install-nginx.html

Docker 安裝 Nginx

Nginx 是一個高性能的 HTTP 和反向代理 web 服務器,同時也提供了 IMAP/POP3/SMTP 服務 。

1、查看可用的 Nginx 版本

訪問 Nginx 鏡像庫地址: https://hub.docker.com/_/nginx?tab=tags

可以通過 Sort by 查看其他版本的 Nginx,默認是最新版本 nginx:latest

你也可以在下拉列表中找到其他你想要的版本:

此外,我們還可以用 docker search nginx 命令來查看可用版本:

$ docker search nginx
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                     Official build of Nginx. 3260 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 674 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 207 [OK] million12/nginx-php Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS... 67 [OK] maxexcloo/nginx-php Docker framework container with Nginx and ... 57 [OK] ...

2、取最新版的 Nginx 鏡像

這里我們拉取官方的最新版本的鏡像:

$ docker pull nginx:latest

3、查看本地鏡像

使用以下命令來查看是否已安裝了 nginx:

$ docker images

在上圖中可以看到我們已經安裝了最新版本(latest)的 nginx 鏡像。

4、運行容器

安裝完成后,我們可以使用以下命令來運行 nginx 容器:

$ docker run --name nginx-test -p 8080:80 -d nginx

參數說明:

  • --name nginx-test:容器名稱。
  • -p 8080:80: 端口進行映射,將本地 8080 端口映射到容器內部的 80 端口。
  • -d nginx: 設置容器在在后台一直運行。

5、安裝成功

最后我們可以通過瀏覽器可以直接訪問 8080 端口的 nginx 服務:

 

 

 

以下 docker 1.3 會報錯,1.8 不報錯但有問題, 1.13可運行

安裝

docker pull nginx
docker run -d --name nginx -p 80:80 -p 443:443 -v /nginx/conf/:/etc/nginx/conf.d/ -v /nginx/logs:/var/log/nginx nginx

 

#原來:docker run -d --name nginx -p 80:80 -p 443:443 -v /nginx/conf/nginx.conf:/etc/nginx/conf.d/default.conf -v /nginx/logs:/var/log/nginx nginx

正向代理與反向代理

  • 正向代理:隱藏了真實的客戶端
  • 反向代理:隱藏了真實的服務端
    默認寫法
server {
        listen       80;
        listen  [::]:80;
        server_name  localhost;
    location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
    }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /usr/share/nginx/html;
        }
}

靜態文件服務器

server {
    listen       80;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    location /static {
        alias   /data;
        autoindex on;
    }
}

負載均衡

upstream testServe {
        server 127.0.0.1:8000 weight=3;
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
}
server {
        listen 80;
        localhost / {
                proxy_pass http://testServe;
        }
}

修改請求信息,轉發到目標路徑

server {
    listen  8080;
    location / {
        proxy_pass http://10.251.63.35:8080;
    }
    location /rewrite {
        if ($uri = /rewrite) {
            rewrite /rewrite http://10.251.63.35:8080 break;
        }
        rewrite /rewrite/([^/]*)/(.*) http://10.251.63.35:8080/$1/$2 break;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM