Linux Docker 之 Nginx 安装

1.下载Nginx

#下载nginx
docker pull nginx:latest

2.快速运行Nginx

#运行默认nginx
docker run --name nginx -p 8080:80 -d nginx

3.主要配置文件目录

@进入容器内部查看配置目录 
docker exec -it nginx /bin/bash

默认的关键目录位置:

  • 主(配置)目录: /etc/nginx
  • 页面目录:/usr/share/nginx/html
  • 日志目录: /var/log/nginx

将该目录配置拷贝至宿主机,否则只能在内部进行调整,不太方便操作;在宿主机创建nginx的相关配置文件目录

3.1 创建nginx

#创建nginx
1.cd /tmp/
2.mkdir nginx

3.2 拷贝文件

从容器中拷贝相关的主要文件至宿主机

//从容器内copy文件和目录到宿主机
docker cp nginx:/etc/nginx/nginx.conf /tmp/nginx/conf
docker cp nginx:/etc/nginx/conf.d /tmp/nginx/conf
docker cp nginx:/usr/share/nginx/html /tmp/nginx
docker cp nginx:/var/log/nginx /tmp/nginx/log

注意:挂载相关文件及目录应该先从第一次运行的nginx容器中拷贝到宿主机,否则将出现异常:1#1: open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
容器内目录原有的东西被外部文件同步覆盖清空了..

3.3 Nginx容器代理SpringBoot容器服务

编辑nginx中的nginx配置文件


user root;

worker_processes 1;

events {
    worker_connections  1024;
}


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

    sendfile        on;
    keepalive_timeout  65;
    client_header_buffer_size 256k;
    open_file_cache max=102400 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 1;
    proxy_connect_timeout   300s;
    proxy_send_timeout      300s;
    proxy_read_timeout      300s;
    proxy_buffer_size       256k;
    proxy_buffers           8 128k;
    proxy_busy_buffers_size 256k;
    proxy_temp_file_write_size 256k;
    proxy_temp_path html;
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
	
    upstream 代理名称 {
      ip_hash;
      server 容器名称:端口信息 weight=1; 
    }
   #gzip  on; #是否开启压缩

    server {
        listen       80;
        server_name  0.0.0.0;

        location / {
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            root   html;
            index  index.html index.htm;
        }
		location ~ (favicon.ico) {
			  
		}
		
		location = /favicon.ico {
		 return 204;
		 access_log     off;
		 log_not_found  off;
		}

        location ~/api/ {
			if ($request_method = OPTIONS ) {
				add_header Access-Control-Allow-Origin *;
				add_header Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, DELETE";
				add_header Access-Control-Max-Age "3600";
				add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization";
				add_header Access-Control-Allow-Credentials "true";
				add_header Content-Length 0;
				add_header Content-Type text/plain;
				return 200;
			}
			proxy_pass	http://代理名称;
			proxy_set_header X-Real-IP $remote_addr;  
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

重启Nginx即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值