Tag: jwilder nginx proxy

如何更改nginx-proxy设置

我正在使用这个lib: https://github.com/jwilder/nginx-proxy 这是我的docker-compose文件: version: '2' services: nginx-proxy: image: jwilder/nginx-proxy container_name: nginx-proxy ports: – "80:80" volumes: – /var/run/docker.sock:/tmp/docker.sock:ro whoami: image: jwilder/whoami environment: – VIRTUAL_HOST=whoami.local service1: image: mynode:1.4 build: . volumes: – .:/app restart: always environment: – VIRTUAL_HOST=service1.local service2: image: mynodeother:1.3 build: . volumes: – .:/app restart: always environment: – VIRTUAL_HOST=service2.local 我添加了2个新的节点服务… 我可以这样做: curl -H "Host: service2.local" […]

Nginx代理(jwilder / nginx-proxy)通过对等方重置连接(502 Bad Gateway)

我有简单docker-compose.yml ,我希望能够使用nginx作为容器的代理。 现在我有两个容器admin和api ,后来我想互相交谈。 现在configuration如下,当我尝试访问api.host.dev我得到这个: nginx-proxy | nginx.1 | 2017/04/19 15:18:35 [error] 26#26: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.60.1, server: api.host.dev, request: "GET / HTTP/1.1", upstream: "http://172.18.0.4:9000/", host: "api.host.dev" nginx-proxy | nginx.1 | api.host.dev 192.168.60.1 – – [19/Apr/2017:15:18:35 +0000] "GET / HTTP/1.1" 502 576 "-" […]

来自docker上的nginx + letsencrypt proxy的502错误

我有一台Ubuntu 16.04的机器。 我尝试在通过nginx代理的容器中设置nextcloud,并使用letsencrytp进行encryption。 现在,当我想访问网站时,我得到一个502错误的网关错误,并且nginx第一次抛出错误 代理| nginx.1 | 2017/04/22 17:26:15 [error] 38#38:* 5 readv()失败(104:由对等方重置连接),从上游读取响应头,客户端:192.168.1.1,server:xxx.ddns。 net请求:“GET / HTTP / 1.1”,上行:“ http://xxx.xxx.0.4:9000 / ”,主机:“xxx.ddns.net” 并访问被logging 代理| nginx.1 | xxx.ddns.net 192.168.1.1 – [22 / Apr / 2017:17:26:15 +0000]“GET / HTTP / 1.1”502 174“ – ”“Mozilla / 5.0(X11; Fedora; Linux x86_64; rv :53.0)Gecko / 20100101 Firefox / 53.0“ 至于我得到的错误是与下一个云没有任何关系,因为当我closures下一个云容器错误依然存在。 代理configuration的docker-compose.yml是 […]

在docker中用ssl运行nginx-proxy

我有一个问题在docker中运行jwilder / nginx-proxy和ssl。 我的情况如下:目前我有3个网页托pipe在同一个容器(Apache虚拟主机)。 其中只有一个使用SSL,其余的可通过http访问。 在我的第一个testing(没有SSL)的代理工作刚刚开箱。 但我有问题转发ssl到那个虚拟主机。 这甚至是可能的,或者我必须将https和非https页面分隔到不同的容器中? (在当前项目阶段不需要) 每当我想通过ssl连接,我在我的浏览器中“无法连接”,而非httpsstream量的作品。 我也不知道在哪里把letsencrypt证书的,因为项目github页面提到: 证书和密钥应以具有.crt和.key扩展名的虚拟主机命名。 例如,VIRTUAL_HOST = foo.bar.com的容器应该在certs目录中有一个foo.bar.com.crt和foo.bar.com.key文件。 但所有的文件都是* .pem所以这是必需的,如何将代理区别它们? 我读了关于env var HTTPS_METHOD = noredirect这是我将需要我想。 我不是关于SSL的专家,但我真的很感谢一些帮助。 这是我目前的docker组成: version: "2" services: proxy: image: jwilder/nginx-proxy:0.4.0 ports: – "80:80" – "443:443" volumes: – /var/run/docker.sock:/tmp/docker.sock:ro web: build: context: ./web volumes: – /var/www/html:/var/www/html – /etc/letsencrypt/live/example.com/cert.pem:/etc/letsencrypt/live/example.com/cert.pem:ro – /etc/letsencrypt/live/example.com/privkey.pem:/etc/letsencrypt/live/example.com/privkey.pem:ro – /etc/letsencrypt/live/example.com/chain.pem:/etc/letsencrypt/live/example.com/chain.pem:ro expose: – "80" – […]

使用jwilder / nginx-proxy的fpm错误:

TL; DR为什么这个WordPress的:最新的Dockerfile是可以与Nginx 的代理,但这一个不是WordPress的:FMP的Dockerfile ? 我怎样才能使用nginx-proxy wordpress:fpm图像 嗨, 我成功地用一些wordpress容器来使用nginx-proxy。 例如这个docker-compose.yml完美的工作: db: image: mariadb environment: – MYSQL_ROOT_PASSWORD=password volumes: – /home/stack/my_domain/bdd:/var/lib/mysql wordpress: image: wordpress links: – db:mysql environment: – VIRTUAL_HOST=my_domain.fr,www.my_domain.fr – LETSENCRYPT_HOST=www.my_domain.fr – LETSENCRYPT_EMAIL=contact@my_domain.fr env_file: – ./env volumes: – /home/stack/my_domain/wordpress:/var/www/html 但如果我使用的wordpress:fpm图像(而不是一个基于Apache的图像)我有502错误的网关错误,并在日志中的这条消息: nginx.1 | 2017/08/14 21:29:51 [error] 347#347:* 2447 connect()失败(111:Connection refused),连接上游时,客户端:86.222.20.31,服务器:www.my_domain.fr,请求: “GET / contact / HTTP / 2.0”,上行:“ http://172.17.0.14:80/contact/ […]

在nginx / nxgin-proxy容器内使用Nextcloud与其他服务一起使用

我试图获得下一个nextcloud:fpm图像运行一个nginx泊坞窗图像加上一个neginx-proxy泊坞窗图像,并尝试从同一个nginx图像除了netxcloud(例如sonarr等)以外的几个服务。 在orde做到这一点,我想configuration的一切,所以当我尝试: http//my-server.com/nextcloud我提出与nexcloud,当我做“http // my-server.com / sonarr`我去声纳服务。 我创build了一个如下的目录: nginx ,其中包含与nginx相关的所有内容。 里面nginx nextcloud`我在哪里configurationnexcloud。 在nginx , docker-compose.yml是: version: '2' services: proxy: image: jwilder/nginx-proxy container_name: proxy ports: – 80:80 – 443:443 volumes: – /mnt/server/proxy/conf.d:/etc/nginx/conf.d – /mnt/server/proxy/vhost.d:/etc/nginx/vhost.d – /mnt/server/proxy/html:/usr/share/nginx/html – /mnt/server/proxy/certs:/etc/nginx/certs:ro – /var/run/docker.sock:/tmp/docker.sock:ro networks: – proxy-tier restart: always letsencrypt-companion: image: alastaircoote/docker-letsencrypt-nginx-proxy-companion container_name: letsencrypt-companion volumes_from: – proxy volumes: – /var/run/docker.sock:/var/run/docker.sock:ro […]

虚拟主机不能在使用nginx的容器外访问

以下是我的docker-compose.yml文件。 我正在尝试设置反向代理。 我尝试设置VIRTUAL_HOST和VIRTUAL_PORT环境虚拟docker集装箱。 它可以使用主机名和端口来访问,如http://services.local:81 请build议如何使用浏览器访问这些服务。 我想访问服务,如http://service1.services.local或http://services.local/service1在这里http://services.local是我的默认主机 注意: – 我正在使用jwilder / nginx-proxy 泊坞窗,compose.yml version: '2' networks: prodnetwork: driver: bridge services: nginx-proxy: image: jwilder/nginx-proxy container_name: nginx-proxy ports: – "80:80" networks: – prodnetwork volumes: – "/var/run/docker.sock:/tmp/docker.sock:ro" – "./nginx.tmpl:/app/nginx.tmpl:ro" – /etc/nginx/conf.d environment: – DEFAULT_HOST=services.local,localhost dockergen: image: jwilder/docker-gen command: -notify-sighup nginx -watch /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf networks: – prodnetwork volumes_from: – nginx-proxy […]

几个docker堆栈具有相同的组成文件,但不同的端口

我想使用同一个组合文件同时运行多容器应用程序的多个实例。 应用程序中的一个容器接受某个端口上的websocket。 我有一个nginx代理来转发不同的域或位置到应用程序的不同实例。 这些实例实际上是使用该应用程序的不同租户。 我想简单地能够运行: docker stack deploy -c docker-stack.yml tenant1 docker stack deploy -c docker-stack.yml tenant2 并以某种方式获得不同的端口到应用程序,然后我可以在代理中使用位置或虚拟主机将不同的websocket连接转发到不同的应用程序实例。 所以: ws://tenant1.mydomain.com or ws://mydomain.com/tenant1 如何configuration代理来做到这一点,一定可以弄清楚。 我已经开始阅读一些: https : //github.com/jwilder/nginx-proxy ,这似乎很好。 然而,它需要我设置虚拟主机名作为每个应用程序实例的环境variables,我似乎无法find一个方法来传递参数与我的docker堆栈部署命令? 理想情况下,我想不关心确切的端口,他们宁愿是随机的。 但是它们需要以某种方式被nginx代理所知道才能够转发。 我想要轻松地启动一个新的appinstance(tenant)堆栈,并为这个名称设置代理(如果代理能够自动处理应用程序的命名,甚至更好)。 如果上述两个示例都起作用(包括虚拟主机和位置),则可以获得奖励,因为这样可以在不创build子域/新域的情况下进行testing和开发。 build议?

牧场主,公共子域和nginx

我在一些本地服务器上运行一个完整的CI堆栈,我尝试迁移到Rancher 。 首先,我使用docker-compose在一个节点上创build了以下configuration,这看起来完美无瑕(即,我可以通过外部公共子域分别访问每个元素)。 jwilder / nginx的代理 jrcs / letsencrypt-的nginx代理 – 伴侣:最新 registry:2.6.2 牧场主/服务器:最新 现在,我想通过各自的外部公共子域从全新的牧场主堆栈访问一些元素。 例如, https : //gitlab.example.com,https://jenkins.example.com 。 不幸的是,这是行不通的。 实际上,当我在创build一个堆栈的时候上传了下面docker-compose.yml文件,看起来好像不能和现有的堆栈进行连接,这个堆栈支持rancher本身,基本上我不能访问运行良好: version: '2' services: gitlab: image: gitlab/gitlab-ce:latest labels: io.rancher.container.pull_image: always ports: – "27100:80" – "27143:443" – "27122:22" restart: always volumes: – /var/gitlab_volume/config:/etc/gitlab – /var/gitlab_volume/logs:/var/log/gitlab – /var/gitlab_volume/data:/var/opt/gitlab environment: VIRTUAL_HOST: "gitlab.example.com" VIRTUAL_PORT: 80 LETSENCRYPT_HOST: "gitlab.example.com" LETSENCRYPT_EMAIL: "admin@example.com" […]

Nginx代理和Docker不能与Laravel一起使用

我在Laravel有一个网站,在Node.js有一个API。 我想将网站托pipe到domain.tld和API到api.domain.tld。 首先我为Laravel项目做了一个Dockerfile: FROM shakyshane/laravel-php:latest COPY composer.lock composer.json /var/www/my_site COPY database /var/www/my_site/database WORKDIR /var/www/my_site COPY . /var/www/my_site RUN php composer.phar install –no-dev –no-scripts \ && rm composer.phar RUN chown -R www-data:www-data \ /var/www/my_site/storage \ /var/www/my_site/bootstrap/cache RUN php artisan optimize EXPOSE 80 443 9000 VOLUME [ "/var/www/my_site" ] 按照这个教程 ,我开始像这样的nginx-proxy图像 docker run -d -p 80:80 -p […]