docker run 安装nginx

docker run 安装nginx

1、拉取镜像
docker pull nginx
2、编写nginx配置文件

​ nginx.conf 文件内容:

worker_processes 1;

events {
    worker_connections 1024;
}


http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;

    #gzip  on;
    client_max_body_size 800m;

    server {
        listen 8080;
        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_set_header X-Forwarded-Proto $scheme;


        location /api/ {
            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;
            expires -1;
            if_modified_since off;
            add_header Last-Modified "";
            add_header Cache-Control no-cache;
            etag off;
            # 反向代理配置,指向后端网关地址
            proxy_pass http://127.0.0.1:8080/api/;
            add_header Access-Control-Allow-Methods *;
            #预检命令的缓存,如果不缓存每次会发送两次请求
            add_header Access-Control-Max-Age 3600;
            #   带cookie请求需要加上这个字段,并设置为true
            add_header Access-Control-Allow-Credentials true;
            #   表示允许这个域跨域调用(客户端发送请求的域名和端口)
            #   $http_origin动态获取请求客户端请求的域   不用*的原因是带cookie的请求不支持*号
            add_header Access-Control-Allow-Origin $http_origin;
            #   表示请求头的字段 动态获取
            add_header Access-Control-Allow-Headers $http_access_control_request_headers;
            #   OPTIONS预检命令,预检命令通过时才发送请求
            #   检查请求的类型是不是预检命令
            if ($request_method = OPTIONS) {
                return 200;
            }
        }


        location / {
            root /usr/local/nginx/html;
            index index.html index.htm;
            try_files $uri $uri/ @rewritesAdmin;
        }
        location @rewritesAdmin {
            rewrite ^(.*)$ /index.html last;
        }


        root html;
        index index.html index.htm;
        error_page 500 502 503 504 /50x.html;
        error_page 404 /404.html;
        location = /404.html {
            root /usr/local/nginx/html;
        }
    }
}
3、启动容器
docker run -d -p 8080:8080  \
 --name nginx \
 -v ./nginx.conf:/etc/nginx/nginx.conf \
 -v ./logs:/var/log/nginx \
 -v ./html:/usr/local/nginx/html \
 -e TZ=Asia/Shanghai \
 --restart always  \
 -d nginx

参数说明
-name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p    映射端口,将docker宿主机的80端口和容器的80端口进行绑定
-v    挂载文件用的,
-e TZ=Asia/Shanghai 设置时区
第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,
第二个-v 表示将日志文件进行挂载
第三个-v 表示的和第一个-v意思一样的。
-d 表示启动的是哪个镜像

4、测试容器是否启动成功
  1. 先查看nginx容器是否启动成功

    docker logs -f nginx
    
  2. 查看http能否访问

     curl 127.0.1.1:8080
    
  3. 查看nginx 报错日志

     cat logs/error.log
    
5、修改nginx配置文件和重启nginx
  1. 修改配置文件后需要删除容器后再重新启动

    docker rm -f nginx
    docker run ...
    
  2. 直接重启nginx容器

    docker restart nginx
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值