目的是为了同一个服务器安装多个discourse
服务器是内网服务器用frpc连接公网frps
宝塔环境nginx还运行其他的站点
discourse可以看到访客的真实ip
最好能用宝塔后台来安装
用命令来安装也可以
但是如何修改discouse的配置文件
以及宝塔里的nginx的配置文件
使得用命令安装多个discourse能不报错呢?
谁能解决宝塔环境下安装多个discourse
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在宝塔环境下安装多个 Discourse 实例,并通过 Nginx 进行反向代理以实现同一个服务器运行多个 Discourse 站点,同时保证其他站点的正常运行和访客真实 IP 的获取,可以按照以下步骤操作:
-
准备环境:
- 确保你的宝塔面板已经安装并更新到最新版本。
- 服务器上已安装 Docker(如果尚未安装,请在宝塔面板中搜索“Docker”进行安装)。
-
创建多个 Discourse 容器:
- 使用 Docker Compose 来部署每个 Discourse 实例。在宝塔文件管理中创建一个目录结构,例如:
/www/discourse1
、/www/discourse2
分别对应两个 Discourse 实例。 - 在每个实例的目录下分别创建
docker-compose.yml
文件,配置不同的端口映射和数据卷等信息。示例配置如下:
- 使用 Docker Compose 来部署每个 Discourse 实例。在宝塔文件管理中创建一个目录结构,例如:
version: '3' services: web: image: discourse/discourse:latest environment: DISCOURSE_HOSTNAME: your-discourse1.example.com POSTGRESQL_USERNAME: discourse POSTGRESQL_PASSWORD: your_password POSTGRESQL_DATABASE: discourse ports: - "8081:80" - "4434:443" volumes: - /www/discourse1/data:/var/www/discourse db: image: postgres:12 environment: POSTGRES_USER: discourse POSTGRES_PASSWORD: your_password POSTGRES_DB: discourse volumes: db-data:
- 根据需要调整 hostname 和端口设置,以便为每个实例分配唯一的域名和端口。
- 配置 Nginx 反向代理:
- 登录宝塔面板,在“网站”界面新建两个站点,比如
your-discourse1.example.com
和your-discourse2.example.com
,将它们绑定到对应的目录如/www/discourse1/public
和/www/discourse2/public
。 - 对于每个站点,在“SSL”选项中配置好相应的 SSL 证书,确保 HTTPS 访问。
- 编辑 Nginx 配置文件(可通过宝塔面板编辑或直接 SSH 到服务器编辑),添加针对每个 Discourse 实例的反向代理规则。以下是两个实例的示例配置:
- 登录宝塔面板,在“网站”界面新建两个站点,比如
server { listen 80; server_name your-discourse1.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name your-discourse1.example.com; # SSL 配置省略... location / { proxy_pass http://localhost:8081; 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_set_header X-Forwarded-Proto $scheme; } } # 类似地,为第二个 Discourse 实例配置另一个 server 块
-
启动 Discourse 容器并检查服务:
- 在每个 Discourse 实例目录下执行
docker-compose up -d
启动容器。 - 检查容器是否正常运行,以及访问对应的域名能否正确加载 Discourse 页面。
- 在每个 Discourse 实例目录下执行
-
内网穿透:
- 如果服务器是内网环境,需借助 frp 进行内网穿透。在公网服务器上的 frps 配置文件中添加相应服务端口映射;在内网服务器的 frpc 配置文件中添加与 Discourse 相关的服务端口映射,确保内外网络通信畅通。
-
确保真实 IP 获取: 由于我们已经在 Nginx 中设置了
proxy_set_header X-Real-IP $remote_addr
,Discourse 应该能自动从这些头部信息中获取到访客的真实 IP。
最后,请根据实际情况调整上述配置,并确保所有配置文件修改后都能正常重启相关服务。对于 Discourse 的具体安装和配置细节,可能还需要参考官方文档进行微调。
解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法