问题描述
因为服务器原先已经安装了nginx(非容器安装),并且占用80端口;
而我方习惯使用容器进行安装应用,故用安装了一个容器ngixn;
docker-compose.yml
version: '3'
services:nginx:restart: alwayscontainer_name: nginximage: nginxports:- 81:80- 443:443volumes:- /data/nginx/html:/usr/share/nginx/html- /data/nginx/logs:/var/log/nginx- /data/nginx/nginx.conf/:/etc/nginx/nginx.conf- /data/nginx/etc/cert:/etc/nginx/cert- /data/nginx/conf.d:/etc/nginx/conf.denvironment:- TZ=Asia/Shanghaiprivileged: true
default.conf
server{listen 80;server_name localhost;charset utf-8;location /test {root /usr/share/nginx/html;index index.html index.htm;}location / {root /usr/share/nginx/html;index ./bdcloud/index.html ./bdcloud/index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
此时我的前端服务应该都从81进入,然后交由nginx的80端口进行处理;
但此时发现在前端的登录页面总是会自动跳转到80端口,导致无法通过81端口进入nginx容器
问题定位
因为nginx容器内部是通过80端口进行监听的,导致在跳转前端首页时直接携带了此时的80端口,而nginx容器本身是通过81端口进行监听的,从而发生了冲突;
解决方案
尽量docker容器的映射端口保持一致
docker-compose.yml
default.conf