阿里云服务器使用docker安装Nginx + Nginx配置vue项目+ Nginx开启https,配置ssl证书

1.基于docker安装nginx 

docker pull nginx //拉取nginx最新镜像
docker images    //查看镜像

2. 打包vue项目,一般前端就会打包好或者自己命令:

npm run build

就会生成一个dish文件夹,这就是打包好的Vue项目资源

3.镜像已经下载好了,接下来进行挂载

4..运行一个nginx镜像

docker run -d --name nginxtest -p 80:80  nginx:latest

5.主机任意位置创建一个空文件夹nginx,我是在home目录中创建的

6.将nginx配置文件copy到主机:


docker cp nginxtest:/etc/nginx/nginx.conf /home/nginx/
docker cp nginxtest:/etc/nginx/conf.d /home/nginx/conf/
docker cp nginxtest:/usr/share/nginx/html /home/nginx/html
docker cp nginxtest:/var/log/nginx/ /home/nginx/logs/
docker cp nginxtest:/etc/ssl/certs/ /home/nginx/certs/

// 这里的nginxtest是容器名称 
// 第一个路径:容器内的路径
// 第二个路径:主机路径(对应第二步创建的nginx文件夹)

目录结构如下:有时候会多一层文件夹,手动调整即可。

 conf下面有:

certs下有:(后期安装ssl证书的关键点)

 

 7.删除容器

docker rm -f nginxtest

8.重新运行一个容器(并且映射对应的目录文件)

docker run -d  --name nginx -p 80:80 -p 443:443 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/logs:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/conf:/etc/nginx/conf.d -v /home/nginx/certs:/etc/ssl/certs  --privileged=true     -e TZ=Asia/Shanghai nginx:latest


-v目录挂载,宿主机和容器内部进行映射

9.将打包好的Vue资源部署到nginx目录,将dist文件夹中的内容全部Copy到第三步中挂载的html文件夹下,如:

10.

配置参考:

  • 项目说明

    在我的项目中为了处理跨域问题,前端所有向后端服务器的请求都加了api前缀,例如:

http://127.0.0.1:8081/api/login

而向后端发送的真实请求为:

http://127.0.0.1:8081/login

因此在nginx的default.conf中添加以下配置:

location /api{
         proxy_pass   http://127.0.0.1:8081/;
    }
// 意思是:
//    当遇到请求 http://127.0.0.1:8081/api/login
//    就会将之转发到 http://127.0.0.1:8081/login

最后配置如下:

 

11.重新进入nginx服务

进入nginx容器:

docker exec -it nginx bash

重启nginx服务:

nginx -s reload

-------------------------------------以上是nginx的安装+nginx配置vue项目-----------------------------------------

--------------------

配置ssl证书

1.首先进入nginx内部

docker exec -it nginx /bin/bash

2.进入容器内部查看nginx配置SSL文件的要求

cd /etc
ls #显示文件

 3.查看 cat ca-certificates.conf 这个配置文件

cat ca-certificates.conf

4.这个是cat ca-certificates.conf 里面的内容 

将自己的证书部署在/etc/ssl/certs目录下就可以了,最上面安装nginx的时候做了目录挂载映射,所以直接把证书放在对应的目录下面就可以,我是放在了/home/nginx/certs里面了,如果没有做目录映射,填写pem和key文件的话要拷贝到nginx内部的容器来

 具体可以参考官网文档

如何在Nginx或Tengine服务器上安装证书_数字证书管理服务(原SSL证书)-阿里云帮助中心

最后我配置的如下:在nginx的default.conf中添加以下配置,将原来的80

 修改完配置一定要重启,不然不生效

进入nginx容器:

docker exec -it nginx bash

重启nginx服务:

nginx -s reload

部署完后就可以用https访问你的网址了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值