V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
anthoy
V2EX  ›  NGINX

jwilder / nginx-proxy 库的一些问题

  •  
  •   anthoy · 2019-04-01 14:34:42 +08:00 · 3832 次点击
    这是一个创建于 2070 天前的主题,其中的信息可能已经有所发展或是发生改变。

    jwilder / nginx-proxy

    就是上面这个库,我打算用来做 nginx 的反向代理,看了好几遍 readme 都还是有些问题弄不清楚,使所以想问下有人知道不?

    • 如果我想修改某个子域名下 server 里面配置,我应该怎么修改?是修改nginx.tmpl吗?还是做一些文件的覆盖?
    • 如果我想修改 http 里面的配置又是怎么样?
    • 修改nginx.tmpl的配置应该怎么样修改?这个好像是用 go 写的?没有怎么接触过?不知道有人比较好的学习建议?
    • 是否有比较好的使用例子教程?我 google 了挺久都没有找到

    我是打算通过 docker nginx 利用子域名进行反向代理并且增加 Let's Encrypt 免费证书的使用,如果有更好的建议麻烦说一下,谢谢!

    11 条回复    2020-03-05 14:05:48 +08:00
    anthoy
        1
    anthoy  
    OP
       2019-04-01 14:37:24 +08:00
    顶一下
    sanjusss
        2
    sanjusss  
       2019-04-01 14:50:48 +08:00
    acme 作者改的一个版本,https://github.com/Neilpang/nginx-proxy
    Let's Encrypt + 自动反向代理
    不建议修改默认模板。
    anthoy
        3
    anthoy  
    OP
       2019-04-01 14:55:49 +08:00
    @sanjusss 我看了这个版本的,这个相对于前面只是增加了 ssl 的支持,我上面的问题一样存在的
    sanjusss
        4
    sanjusss  
       2019-04-01 14:58:53 +08:00
    @anthoy
    子域名问题:
    单独起一个 nginx 容器,VIRTUAL_HOST 设置为子域名,修改这个 nginx 容器的设置就行了。
    anthoy
        5
    anthoy  
    OP
       2019-04-01 15:04:45 +08:00
    @sanjusss 这个方法可能可以(不考虑 ssl 的影响和再走一次 nginx ),但是确实那个库有提供我想要的功能的,只是 readme 说的不是很清楚,其他资料也很少,如果使用你说的这个的话,相当于中间加一个 nginx,可能某种意义上来说就不是很友好,不过还是很感谢你提供的建议
    slime7
        6
    slime7  
       2019-04-01 16:07:20 +08:00
    nginx-proxy 开好了之后应该是不用动的了,配置子域名 server 的配置是修改对应域名所开的 nginx 的配置。
    anthoy
        7
    anthoy  
    OP
       2019-04-01 16:38:37 +08:00
    @slime7 是手动进 docekr 里面修改还是覆盖 vhost.d 文件夹?
    slime7
        8
    slime7  
       2019-04-01 16:42:49 +08:00
    @anthoy 就跟没用 nginx-proxy 的时候一样改,你映射了 vhost.d 文件夹就直接改完 restart 喽
    evanshh
        9
    evanshh  
       2020-03-05 00:44:36 +08:00
    楼主解决了吗,如果想修改主配置里的 worker_rlimit_nofile,events 这些该怎么操作呢
    anthoy
        10
    anthoy  
    OP
       2020-03-05 09:22:23 +08:00
    @evanshh 你这个直接创建一个 nginx.conf 映射进去容器里面就可以啦,例如我创建 nginx.conf
    ```bash
    user nginx;
    worker_processes auto;

    error_log /var/log/nginx/error.log warn;
    pid /var/run/nginx.pid;


    events {
    worker_connections 1024;
    }


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

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    log_format access '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" $http_x_forwarded_for '
    'upstream_addr:"$upstream_addr" upstream_status:"$upstream_status" upstream_response_time:"$upstream_response_time" request_time:"$request_time"';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    #tcp_nopush on;

    keepalive_timeout 65;

    # 开启 gzip
    gzip on;
    # 启用 gzip 压缩的最小文件,小于设置值的文件将不会压缩
    gzip_min_length 1k;
    # gzip 压缩级别,1-10,数字越大压缩的越好,也越占用 CPU 时间
    gzip_comp_level 6;
    # 进行压缩的文件类型。javascript 有多种形式。其中的值可以在 mime.types 文件中找到。
    # text/plain text/css application/javascript application/json application/x-javascript application/xml text/javascript 此部分和生成的有重复
    gzip_types application/x-httpd-php image/jpeg image/gif image/png font/ttf font/otf image/svg+xml;
    # 是否在 http header 中添加 Vary: Accept-Encoding,建议开启
    gzip_vary on;
    # 禁用 IE 6 gzip
    gzip_disable "MSIE [1-6]\.";

    # 最大上传大小
    client_max_body_size 250M;

    include /etc/nginx/conf.d/*.conf;
    }
    daemon off;
    ```
    然后在容器启动时映射- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro ;就可以覆盖主配置了
    evanshh
        11
    evanshh  
       2020-03-05 14:05:48 +08:00
    @anthoy 好,感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2461 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:48 · PVG 23:48 · LAX 07:48 · JFK 10:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.