Tag: nginx

如何在docker和代理中做dynamic端口映射?

我有一个Web服务器容器,它将公开80端口,并将它部署到3个服务器,主机中的映射端口将每次都改变,例如 host A: 10000 => 80 host A: 10001 => 80 host B: 10004 => 80 host B: 10008 => 80 host C: 10006 => 80 而且我有一个代理服务器在这3台服务器前,我想使用haproxy或nginx,但是如何将这3台服务器中的dynamic端口映射到代理服务器的固定端口?

我如何让我的Dreamweaver网站使用我的nginxdocker容器作为Webtesting服务器?

我是新来的使用docker,虽然我跟着教程来创build一个Nginx的Web服务器容器,我有一个在Dreamweaver中创build的网站。 我想知道如何使用虚拟Web服务器来托pipe我的Dreamweaver站点作为testing服务器。 我可以打开kitematic并抓住一个nginx,并将我的Dreamweaver文件放到网站上的2048(游戏)示例中吗?

为什么在容器IP和别名之间交换会导致AJAX请求的不同?

我有一个位于这里的小示例项目,说明了在使用nginx + node + 主机 docker stack 时看到的问题 。 我有2个容器: 简单地返回一个json对象的节点 (快速)应用程序。 它是根据这个网站启用CORs。 它有它的端口发布到主机通过3000:80 一个nginx服务器也基于这个网站启用CORs。 它只从默认位置( /usr/shared/nginx/html )提供静态内容( index.html和main.js文件)。 其端口通过8080:80 。 当从主机单独运行容器时,我可以访问节点服务器并查看返回的JSON对象。 当我访问nginx服务器时,我看到我的index.html和main.js的javascript代码运行。 现在我有节点应用程序容器链接到nginx服务器容器。 从我的nginx容器的main.js文件中,我试图通过http://nodeapp/api访问服务器。 我看到一个CORs错误 XMLHttpRequest无法加载http:// nodeapp / api 。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:8080 '因此不被允许访问。 奇怪的是, 响应头指示它来自nginx,而不是我所期望的快速应用程序。 nginx容器也没有logging任何东西。 事情的工作 如果我将XMLHttpRequest的URL更改为节点容器的IP(比如说172.17.0.2),它将按预期工作, 并且响应标头指示它来自快速服务器。 在我的/etc/hosts文件中有一个条目: 172.17.0.2 nodeapp abc123ContainerId quickserve_nodeapp_run_1 当我从一个交互式的tty容器中curl节点容器时,它也能按预期工作。 如果我加载节点容器并使用http-server (主机上http-server ),则按预期工作, 并且响应标头指示它来自快速服务器。

Docker推送artifactory

我正在尝试创build一个本地docker仓库,我可以把我的图片放入。为此,我已经完成了以下步骤 使用SSLconfigurationnginxconfigurationnginx,以便将docker local repo与服务器名称绑定以下是我的nginxconfiguration upstream artifactory_lb { server myLb.company.com:8081; server myLb.company.com:8081 backup; } log_format upstreamlog '[$time_local] $remote_addr – $remote_user – $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time'; server { listen 80; listen 443 ssl; ssl_certificate /etc/nginx/ssl/my-certs/myCert.pem; ssl_certificate_key /etc/nginx/ssl/my-certs/myserver.key; client_max_body_size 2048M; location / { proxy_set_header Host $host:$server_port; proxy_pass http://artifactory_lb; proxy_read_timeout 90; } access_log […]

如何dockerize Ruby on Rails的生产?

我使用Docker为我的开发环境设置了Ruby on Rails,但我不确定此configuration是否适合生产。 目前我使用nginx +独angular兽作为networking服务器,但nginx +乘客或nginx +美洲狮呢? 我告诉你我的docker设置,希望你有一些改进。 泊坞窗,compose.yml web: image: nginx:latest ports: – "80" – "443" links: – "rails" environment: VIRTUAL_HOST: blog.dev.lvh volumes: – ./log/nginx:/var/log/nginx – ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf – ./docker/nginx/sites-enabled:/etc/nginx/sites-enabled – ./docker/nginx/ssl:/etc/nginx/ssl volumes_from: – rails rails: image: mc388/rails:latest environment: RACK_ENV: development RAILS_ENV: development command: bundle exec unicorn -c config/unicorn.rb volumes: – ./:/var/www/html links: – mysql […]

NGINX-Proxy:在一个容器上运行绑定到不同虚拟主机的多个端口

使用Jason Wilder的NGINX-Proxy ,是否可以将两台或更多台虚拟主机绑定到一个容器上的各个端口? 我在想什么: # start the reverse proxy docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy # start a first container for http://tutum.test.local docker run -d -e "VIRTUAL_HOST=tutum.test.local" -e "VIRTUAL_HOST=tutum.school.nationwide" -p 80:80 -p 3000:3000 tutum/hello-world 第一个虚拟主机可以链接到代码中运行在端口3000上的套接字,第二个虚拟主机可以链接到8080端口并处理常规API调用。 这是可能的,或者我会更好地把套接字分解成一个单独的docker集装箱?

如何创build我的nginx.conf

问题是API和前端没有链接。 当我启动nginx容器时,我可以使用–link命令。 但我仍然需要编辑我的nginx.conf。 目前我有 worker_processes 4; events { worker_connections 1024; } http { upstream node-app { least_conn; server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s; } server { listen 80; location / { proxy_pass http://node-app; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } } 我的nodejs容器有–name nodejs和它的端口8888上运行( -p 8888:8888 )它的dockerfile看起来像这样: FROM node […]

不使用docker-compose和django提供静态文件的Nginx(13:权限被拒绝)

我使用docker-compose和docker-machine来设置具有多个容器的开发环境。 我有一个nginx的容器,它作为我的django应用程序的代理,也提供静态文件)。 我也有一个django应用程序的容器,一个用于postgresql,一个用于postgresdata。 目录结构如下: code/ — nginx/ Dockerfile nginx.conf — web/ django-project/ static/ Dockerfile manage.py requirements.txt .env docker-compose.yml production.yml 为了运行应用程序,我使用docker-machine: docker-machine create -d virtualbox dev 然后我运行: docker-compose build docker-compose up -d 而应用程序已经启动并在机器的ip上运行。 问题是nginx无法提供静态文件,因为它没有权限(13:权限被拒绝)。 我的设置如下: nginx Dockerfile: # Set nginx base image FROM nginx # Copy custom configuration file from the current directory COPY nginx.conf /etc/nginx/nginx.conf […]

用nginx和php5设置docker

试图用nginx和php5来设置docker。 这是我的Dockerfile FROM nginx:1.9.9 RUN apt-get update RUN apt-get -y install php5-fpm php5-mysql php-apc php5-imagick\ php5-imap php5-mcrypt php5-curl php5-cli php5-gd php5-pgsql\ php5-common php-pear curl php5-json ADD index.html /usr/share/nginx/html/index.html ADD index.php /usr/share/nginx/html/index.php ADD default /etc/nginx/sites-available/default RUN /etc/init.d/php5-fpm restart 我可以用下面的命令来build立它: sudo docker build -t myuser/nginx-php5:0.1 . 然后我启动它如下: sudo docker run -d -P myuser/nginx-php5:0.1 nginx deamon正在运行,我确实可以看到我的index.html,但index.php获取“下载”,而不是服务。 这表明PHP没有正确设置… 我的默认文件: […]

在另一个应用程序中运行docker中的nginx

我有我的应用程序需要服务于端口:5000 这是我的dockerfile FROM ubuntu:14.04 RUN apt-get update RUN apt-get install -y nginx ADD ./nginx.conf /etc/nginx/sites-available/default RUN service nginx restart RUN go get github.com/a/mycmd EXPOSE 5000 我跑了 sudo docker run –publish 5000:5000 –rm app /go/bin/mycmd 这里是我的nginxconfiguration文件: limit_req_zone $binary_remote_addr zone=limit:10m rate=2r/s; server { listen 80; set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For; real_ip_recursive on; server_name 123.13.13.13 example.com; location / { […]