解决discourse部署到CentOS7的坑,nginx转发流量到另一个nginx的解决方案

Discourse 官方推荐使用docker部署项目, 好处是简单快捷, 坑的是docker镜像默认占用了80端口和443端口, 对于我这种一台机器部署多个网站的人,明显不够用,我需要将 Discourse 默认占用的80和443端口映射到宿主机的其它端口,比如80映射到宿主机的20080, 443映射到宿主机的 20443

通过改app.yml就可以解决

app.yml

但难搞的是, Discourse官方镜像自带了 nginx, 并写死了域名, 并自动配置好了ssl证书,并自动将80端口转发到443端口。

如果我们使用宿主机的nginx调度,就必须做一个纯转发的配置。

安装模块

yum update -y
yum install nginx-mod-stream -y

以CentOS7 为例,安装 nginx-mod-stream 完成后, 可以在

/usr/lib64/nginx/modules/ngx_stream_module.so

找到

最终的 /etc/nginx/nginx.conf 配置为

#user  nobody;
worker_processes  1;

load_module /usr/lib64/nginx/modules/ngx_stream_module.so;

events {
    worker_connections  1024;
}

stream {

    map $ssl_preread_server_name $backend_name {
        bbs.v2fy.com  bbs;
        default  web;
                

    }

    upstream bbs {
        server 127.0.0.1:20443;
    }

    upstream web {
        server 127.0.0.1:443;
    }

    server {
        listen       443 reuseport;
        listen  [::]:443 reuseport;
        proxy_pass   $backend_name;
        ssl_preread  on;
     }
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;


        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值