使用docker创建部署nginx

1,

mkdir wwwroot

mkdir conf

mkdir logs

wwwroot: 目录将映射为 nginx 容器配置的虚拟目录。

logs: 目录将映射为 nginx 容器的日志目录。

conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

 

2,在conf文件夹中创建nginx.conf文件

cd conf

vi.nginx.conf

user  nginx;
worker_processes  1;

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


events {
    worker_connections  1024;
}


http {

	#博客服务器,多个可以实现负载均衡
    upstream lyx-blog{
	   server 192.168.xx.xx:2020 weight=1;
    }


 
    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;

   
	server {
		listen       80;
		server_name  localhost;

		#charset koi8-r;
		#access_log  /var/log/nginx/host.access.log  main;
		
		
		#用户相关的请求,转到lyx-blog
		location ^~/user/ {
            proxy_pass   http://lyx-blog;
			#以下是一些反向代理的配置可删除
			proxy_redirect             off; 
			#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
			proxy_set_header           Host $host;
			proxy_set_header 		   Cookie $http_cookie;
			proxy_set_header           X-Real-IP $remote_addr; 
			proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header           HTTP_X_FORWARDED_FOR $remote_addr;
			proxy_set_header           X-Forwarded-Server $host;
        }
        
		location ^~/admin/ {
           	 proxy_pass   http://lyx-blog;
			#以下是一些反向代理的配置可删除
			proxy_redirect             off; 
			#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
			proxy_set_header           Host $host;
			proxy_set_header 		   Cookie $http_cookie;
			proxy_set_header           X-Real-IP $remote_addr; 
			proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header           HTTP_X_FORWARDED_FOR $remote_addr;
			proxy_set_header           X-Forwarded-Server $host;
        }
        
        location ^~/portal/ {
           	 proxy_pass   http://lyx-blog;
			#以下是一些反向代理的配置可删除
			proxy_redirect             off; 
			#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
			proxy_set_header           Host $host;
			proxy_set_header 		   Cookie $http_cookie;
			proxy_set_header           X-Real-IP $remote_addr; 
			proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header           HTTP_X_FORWARDED_FOR $remote_addr;
			proxy_set_header           X-Forwarded-Server $host;
        }

		#其他访问访问根目录wwwroot
		location / {
		    root   /usr/share/nginx/html;
			index  index.html index.htm;
		}
	}
}

 

3,运行nginx

方式1:

 

cd ..

退出到nginx目录下,执行:

docker run -d --name=lyx_nginx -p 80:80 \
-v /root/docker/nginx/wwwroot:/usr/share/nginx/html \
-v /root/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/docker/nginx/logs:/var/log/nginx \
nginx

命令说明:

-p xx:80: 将容器的 80 端口映射到主机的 xx 端口.

\  换行

--name lyx-nginx:将容器命名为 lyx-nginx

-v /root/docker/nginx/wwwroot:/usr/share/nginx/html:将创建的 wwwroot 目录挂载到容器的 /usr/share/nginx/html。

-v /root/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

-v /root/docker/nginx/logs:/var/log/nginx:将创建的 logs 挂载到容器的 /var/log/nginx。

 

拉取最新的nginx 

 

注意:如果出现如下问题(没有出现就忽略即可):

/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "container init exited prematurely".

原因:docker 版本与 Linux 内核版本不兼容导致。

解决办法:https://blog.csdn.net/liqun_super/article/details/88304094

 

 

方式2:

a,可以先建立一个docker-compose.yml文件

version: '3.1'
services:
  nginx:
    restart: always
    image: nginx:1.19.2-alpine
    container_name: my-nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - "./conf/nginx.conf:/etc/nginx/nginx.conf"
      - "./wwwroot:/usr/share/nginx/wwwroot"
      - "./log:/var/log/nginx"

b,执行

docker-compose up -d

这样也能执行。但是都是需要配置编写nginx.conf文件。

 

 

4,测试

cd wwwroot

vi index.html

访问:192.168.xx.xx

 

5,可以把 vue 开发的项目丢到nginx的wwwroot目录里面

vue,先打包项目

在项目下会发现多了一个目录 dist

 

接来下,复制dist目录里面的内容到 nginx的wwwroot目录里即可。

 

测试 访问:192.168.xx.xx


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值