美文网首页
解决discourse部署到CentOS7的坑,nginx转发流

解决discourse部署到CentOS7的坑,nginx转发流

作者: zhaoolee | 来源:发表于2021-06-18 17:19 被阅读0次

    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;
            }
        }
    
    }
    

    相关文章

      网友评论

          本文标题:解决discourse部署到CentOS7的坑,nginx转发流

          本文链接:https://www.haomeiwen.com/subject/auflyltx.html