发现一个问题,我现在打算用 Nginx 做反向代理。使用 solo 默认启动端口是 8080 但是现在出现一个问题。所有网站资源都是指向 8080,如下 现在模板${servePath}参数输出都是带域名 8080 的,请问这个配置需要怎么修改。

dcoker 安装 solo, 使用默认 8080 端口启动的问题

发现一个问题,我现在打算用 Nginx 做反向代理。使用 solo 默认启动端口是 8080
但是现在出现一个问题。所有网站资源都是指向 8080,如下

<link rel="dns-prefetch" href="[http://www.fly930.com:8080](view-source:http://www.fly930.com:8080/)"/>

现在模板${servePath}参数输出都是带域名 8080 的,请问这个配置需要怎么修改。

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    723 引用 • 5462 回帖 • 695 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销, 可以很容易地在机器和数据中心中运行。最重要的是, 他们不依赖于任何语言、框架或包括系统。

    210 引用 • 389 回帖 • 650 关注
  • Q&A

    提问之前请先看《提问的智慧》精读注解版,好的问题比好的答案更有价值。

    1123 引用 • 7350 回帖 • 586 关注
被采纳的回答
  • 88250    

    域名可以访问了,你加个启动参数试试 server_port=80

26 回帖   
请输入回帖内容...
  • 88250

    用反代后的域名访问,不要带端口。

    1 回复
  • figo930        

    现在就是用反向后的域名访问,现在的问题是源码里面就是带端口的image.png

  • 88250

    Docker 启动时带域名参数了么?

  • 88250

    文档里面那几个参数带上,另外 -h 看下参数说明。

    2 回复
  • figo930        

    我用的是 docker-compose
    solo 部分的代码

    solo:
        container_name: solo
        image: b3log/solo
        restart: always
        # volumes:
        #   - ./web:/opt/solo/
        ports:
          - "8080:8080"
        links:
          - mysql
        environment:
          RUNTIME_DB: "MYSQL"
          JDBC_USERNAME: "root"
          JDBC_PASSWORD: "root"
          JDBC_DRIVER: "com.mysql.jdbc.Driver"
          JDBC_URL: "jdbc:mysql://mysql:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"
        command: --listen_port=8080 --server_scheme=http --server_host=www.fly930.com
    
  • figo930        

    但是如果是直接吧容器的 8080 端口映射到主机的 80 端口 ${staticServePath} 参数就不会带 8080。

  • 88250

    NGINX 反代配置贴一下。

    1 回复
  • figo930        

    docker-compose 的 Nginx 代码

     nginx:
        container_name: "nginx"
        image: nginx:latest
        ports:
          - "80:80"
          - "443:443"
        links:
          - solo
        volumes:
          - "./conf:/etc/nginx/conf.d"
    

    Nginx 的 nginx.conf 配置

    server {
                listen       80;
                server_name www.fly930.com fly930.com;
    
              location / {
    	    proxy_pass http://solo:8080;
              }
    }
    

    反代我现在只是简单的配置

    2 回复
  • mufengcoding        

    缺少反带的参数吧

    1 回复
  • 88250      

    现在启动着服务么? 域名解析不到哦。

    3 回复
  • figo930        

    我现在域名解析还没有设置过去,可以在。我等几分钟吧。我去设置一下

  • figo930        

    现在应该可以访问了,不行的话在 hosts 设置一下指向 13.112.71.144

    1 回复
  • figo930        

    为了能访问正常我现在把 8080 端口也对外开放了

  • figo930        

    反代参数是指哪个?

  • 88250      

    域名可以访问了,你加个启动参数试试 server_port=80

    3 回复
  • figo930        

     command: --listen_port=80 --server_scheme=http --server_host=www.fly930.com
    

    这样?

    1 回复
  • 88250      

    server_port

    1 回复
  • figo930        

    其实我现在有两个方案
    第一个在 solo 使用 80 端口启动,不映射主机 80 端口,通过 NGINX 反代 Solo 的 80 端口。这样是可以正常的
    第二个方案是在模板里面吧全部${staticServePath} 修改稳相对路径

    1 回复
  • figo930        

    我试试

  • 88250      

    不用 80,正常反代肯定可以的。也不要改模板代码,肯定是配置问题。

  • 88250

    另外,必须保持社区、博客、GitHub 三个地方用户名一致,社区这边我给你改成 figo930 了。

    1 回复
  • figo930 1 评论        

    加了 server_port=80 参数 现在正常了。 谢谢大 D👍

    答案记得采纳一下啊。
    88250
  • figo930        

    哈哈 原来的域名过期忘记续费,被赌博网站抢注去了

  • 88250

    理论上不用配置这个端口参数的,默认是留空(80 或者 443)的,我也不知道你那里为啥被 8080 覆盖了 😂

    1 回复
  • figo930        

    还没得空配置 443 ,晚上有空再弄了。弄好了在写一篇 docker-compose 教程哈哈

    1 回复
  • 88250      

    估计还得仔细找找端口的问题。

请输入回帖内容 ...