小白学习nginx(一)--docker创建nginxr容器

拉取nginx镜像

docker pull nginx
复制代码

创建nginx容器

docker run --name nginx -d \
-p 80:80 -p 443:443 \ 
-v /usr/local/docker/nginx/html:/usr/share/nginx/html:ro \
-v /usr/local/docker/nginx/logs:/var/log/nginx/:rw \
-v /usr/local/docker/nginx/config/conf.d:/etc/nginx/conf.d:rw \
-d nginx
复制代码

注意点:

  • 我并没有在/usr/local/docker/nginx目录下创建html、logs、和/config/conf.d目录,自动映射的

进入nginx容器

docker exec -it nginx bash
复制代码

进入/etc/nginx,并查看nginx.conf配置文件,这个文件是nignx的根本配置文件

cd /etc/nginx

cat nginx.conf
复制代码

nginx.conf内容如下:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf; # 看这里,引入/etc/nginx/conf.d目录下所有的以conf为扩展名的配置文件
}
复制代码

退出nginx容器,在宿主机映射的配置文件目录下新建default.conf并编辑

cd /usr/local/docker/nginx/config/conf.d

vi default.conf
复制代码

default.conf的内容如下:

server {
    listen       80;
    server_name  _; # _代表当前宿主机的地址

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html; # nginx代理的根目录,被我映射到了/usr/local/docker/nginx/html,所以可以在此目录下新建index.html当作默认网页
        index  index.html index.htm;
    }
    
    #代理配置
    location /business {
        proxy_pass  http://business.app.com;
    }
    
    #代理配置
    location /user {
        proxy_pass  http://user.app.com;
    }
}
复制代码

进入/usr/local/docker/nginx/html,新建index.html

cd /usr/local/docker/nginx/html

vi index.html
复制代码

index.html的内容如下:

welcome to nginx
复制代码

检查nginx配置文件是否正确

// docker检查
docker exec nginx nginx -t
复制代码

image.png 文件内容没有问题。

重新加载nginx的配置文件,相当于重启nginx容器

 docker exec nginx nginx -s reload
复制代码

访问nginx,端口为80

192.168.57.128
复制代码

image.png

Guess you like

Origin juejin.im/post/7039717798922158117