docker-compose部署vue+nginx接口转发

1、docker-compose文件内容

version: "3"
services:  
  dp-ui: #vue前端服务 
    container_name: robot
    build:
      context: ./
      dockerfile: dockerfile
    ports: #避免出现端口映射错误,建议采用字符串格式
      - "5000:80" ## 左侧端口是容器对外端口,也就是我们浏览器访问的端口,右侧端口为nginx的监听端口,下面配置文件中会说明
    volumes:
      - ./dist/:/usr/share/nginx/html/ ## 指定根html的文件目录
    restart: always ## 自动重启

2、dockerfile文件

# 基础镜像
FROM  nginx:1.10
# author
MAINTAINER ruoyi

 

把这两个文件放到服务器和前端dist打包的文件同一个目录下
比如:
docker-compose.yml
dockerfile
dist
这三个在同一目录下。
3、进到这个目录执行命令启动容器

docker-compose -f docker-compose.yml  up -d --build

4、在nginx配置接口
在nginx的server配置接口

#WebSocket的配置
location /robotDpSocket/ {
                proxy_pass http://192.168.110.10:8080/;
                # support websocket
                proxy_set_header Upgrade $http_upgrade; #此处配置 上面定义的变量
                proxy_set_header Connection $connection_upgrade;
        }
#http接口的配置
        location /robotDpApi/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr; 
            proxy_set_header REMOTE-HOST $remote_addr; 
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://192.168.110.10:8080/;
            
        }

5、最后在浏览器上输入http://192.168.110.10:5000就可以访问到页面。这个5000端口是docker-compose配置文件里面映射出来的访问端口。
6、如果想通过域名和去掉端口访问。那就在nginx的server模块里面server_name 配置访问的域名,然后加上

		location / {
			proxy_pass http://192.168.110.10:5000;#代理地址
	  		add_header 'Access-Control-Allow-Origin' *;  
	    		add_header 'Access-Control-Allow-Credentials' 'true';  
	    		add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT';  
	    		add_header 'Access-Control-Allow-Headers' *;  
	    		add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';  
	    		if ($request_method = 'OPTIONS') {  
	    			return 204;  
	         }
		}

就可以通过域名访问nginx,nginx再转发的前端容器。

docker-compose中配置nacos的跨域可以通过修改nginx.conf文件来实现。根据给出的引用,我们可以看到docker-compose中的nginx服务使用了一个挂载的nginx.conf文件。因此,我们可以在该文件中进行跨域配置。 具体的步骤如下: 1. 打开挂载的nginx.conf文件,该文件路径为/pook/nginx/nginx.conf。 2. 在文件中找到http模块下的server模块。 3. 在server模块中添加以下配置代码来实现跨域: ``` location / { # 允许的域名 add_header Access-Control-Allow-Origin *; # 允许的请求方法 add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; # 允许的请求头 add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"; # 允许携带凭证(cookie) add_header Access-Control-Allow-Credentials true; } ``` 4. 保存文件并重启docker-compose服务。 这样,你就成功配置了docker-compose中nacos的跨域设置。现在,nacos将允许来自任何域的请求,并支持常用的请求方法和头部信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Nginx部署前段VUE---docker-compose编排方式](https://blog.csdn.net/weixin_42437633/article/details/108932338)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值