jwilder / nginx-proxy
就是上面这个库,我打算用来做 nginx 的反向代理,看了好几遍 readme 都还是有些问题弄不清楚,使所以想问下有人知道不?
- 如果我想修改某个子域名下 server 里面配置,我应该怎么修改?是修改nginx.tmpl吗?还抗投诉服务器是做一些文件的覆盖?
- 如果我想修改 http 里面的配置又是怎么样?
- 修改nginx.tmpl的配置应该怎么样修改?这个好像是用 go 写的?没有怎么接触过?不知道有人比较好的学习建议?
- 是否有比较好的使用例子教程?我 google 了挺久都没有找到
我是打算通过 docker nginx 利用子域名进行反向代理并且增加 Let's Encrypt 免费证书的使用,如果有更好的建议麻烦说一下,谢谢!
顶一下
acme 作者改的一个版本,https://github.com/Neilpang/nginx-proxy
Let's Encrypt + 自动反向代理
不建议修改默认模板。
我看了这个版本的,这个相对于前面只是增加了 ssl 的支持,我上面的问题一样存在的
子域名问题:
单独起一个 nginx 容器,VIRTUAL_HOST 设置为子域名,修改这个 nginx 容器的设置就行了。
这个方法可能可以(不考虑 ssl 的影响和再走一次 nginx ),但是确实那个库有提供我想要的功能的,只是 readme 说的不是很清楚,其他资料也很少,如果使用你说的这个的话,相当于中间加一个 nginx,可能某种意义上来说就不是很友好,不过还是很感谢你提供的建议
nginx-proxy 开好了之后应该是不用动的了,配置子域名 server 的配置是修改对应域名所开的 nginx 的配置。
是手动进 docekr 里面修改还是覆盖 vhost.d 文件夹?
就跟没用 nginx-proxy 的时候一样改,你映射了 vhost.d 文件夹就直接改完 restart 喽
楼主解决了吗,如果想修改主配置里的 worker_rlimit_nofile,events 这些该怎么操作呢
你这个直接创建一个 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;
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 ;就可以覆盖主配置了
好,感谢