Appearance
代理转发
斑马兽已经将上一章的代码生成了新项目,请访问 GITHUB 或 GITEE 查看。下面实例是根据这个项目来操作。
安装项目
多个站点可以使用向上面配置 LARAVEL 然后在单一容器中配置虚拟主机,下面我们介绍配置多个容器实现多站点运行。
分别 CLONE 项目 banmashou 与 bmcms
mkdir test
cd test
git clone https://gitee.com/banmashou/docker.git banmashou
git clone https://gitee.com/banmashou/docker.git bmcms容器配置
为每个项目设置配置项,如果端口或容器名相同会造成冲突无法启动
修改配置
banmashou/.env
#容器名前缀
CONTAINER_NAME_PRE=bmcms
#宿主机映射到容器的端口
PORT=8081
#宿主机映射到MYSQL容器的端口
MYSQL_PORT=33061bmcms/.env
#容器名前缀
CONTAINER_NAME_PRE=bmcms
#宿主机映射到容器的端口
PORT=8082
#宿主机映射到MYSQL容器的端口j
MYSQL_PORT=33062执行编译
在两个项目中分别执行命令完成编译
docker-compose up -d现在可以看到容器列表
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
安装配置
在宿主环境中安装 NGINX 服务器软件,NGINX 在不同系统中的配置文件存放目录不同
MAC
软件安装
下面安装 NGINX 服务器软件
brew install nginx调试中难免有错误发生,通过错误日志可以很好排查
cat /usr/local/var/log/nginx/error.log修改配置文件后需要重起 NGINX,下面介绍基本的管理命令
#开启
brew services start nginx
#停止
brew services stop nginx
#重起
brew services restart nginx文件说明
/usr/local/etc/nginx/nginx.conf为主配置文件/usr/local/etc/servers目录存放自定义配置文件,这样就不需要改主配置文件了
CENTOS
软件安装
下面安装 NGINX 服务器软件
yum update && yum install nginx -y调试中难免有错误发生,通过错误日志可以很好排查
cat /usr/local/var/log/nginx/error.log修改配置文件后需要重起 NGINX,下面介绍基本的管理命令
#开启
systemctl start nginx
#停止
systemctl stop nginx
#重起
systemctl restart nginx文件说明
/etc/nginx/nginx.conf为主配置文件/etc/nginx/conf.d目录存放自定义配置文件,这样就不需要改主配置文件了
HOSTS
如果在本地测试时,修改 /etc/hosts文件中添加两个域名,线上使用将域名解析过来就可以 了
127.0.0.1 bmcms.test
127.0.0.1 banmashou.test配置代理
修改主配置文件 nginx.conf将 NGINX 默认 8080 端口改变 80
...
server {
...
listen 80;
server_name localhost;
...
}在 NGINX 配置目录(centos 为/etc/nginx/conf.d)创建 bmcms.conf , banmashou.conf 两个配置文件
banmashou.conf
server {
listen 80;
server_name banmashou.test;
access_log /var/log/nginx/banmashou.log;
error_log /var/log/nginx/banmashou.error.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8081;
}
}bmcms.conf
server {
listen 80;
server_name bmcms.test;
access_log /var/log/nginx/bmcms.log;
error_log /var/log/nginx/bmcms.error.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8082;
}
}现在使用不同域名访问就可以被代理到不同的容器中了
