用docker容器在nginx上部署前后端項目


用docker容器在nginx上部署前端項目,且解決跨域問題

准備工作

1、前端項目打包 ,在/home 解壓,存於/home/dist內

2、后端項目打jar包,使用jar命令跑起來

宿主機操作

rar解壓工具:

下載地址https://files.cnblogs.com/files/whiplasher/rarlinux-x64-5.9.0.tar.gz
tar -xzpvf rarlinux-x64-5.7.1b2.tar.gz

新建數據卷名為nginx

docker volume create nginx

docker volume ls

docker volume inspect nginx

初始化一個叫nginx的容器,-d后台運行,-p端口映射,docker宿主機的8089端口映射到容器的80端口
-v參數 把dist下的靜態文件映射到nginx的html文件夾,配置文件映射到對應的默認配置文件,把數據卷nginx綁定的主機文件夾(/var/lib/docker/volumes/nginx/_data)
映射到nginx容器的 /etc/nginx文件夾

docker run  --name nginx -d -p 8089:80  -v /home/dist:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v nginx:/etc/nginx  nginx

docker ps 查看運行的容器

進入主機掛載的文件夾

cd /var/lib/docker/volumes/nginx

cd _data/

復制靜態文件夾到掛載的文件夾
cp /home/dist .

進到存放配置文件的文件夾,編輯配置文件

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;


        server{
        listen  80;
        server_name ip;

        location / {
                proxy_pass http://ip:8081/api/; #ip為你的后端ip地址
                }

        location ~ .*\.(js|css|ico|png|jpg|eot|svg|ttf|woff|html)$ {
                root /etc/nginx/dist;
                expires 30d;
                }
        }


}




進入nginx容器的文件夾

/data/nginx/conf

1、docker exec -it nginx(容器名) /bin/bash

2、cd /etc/nginx

3、ls 可查看到剛剛復制的主機文件夾中的靜態文件

重啟nginx容器以更新配置

docker ps
docker restart XXX


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM