Tag: nginx

Nginx反向代理背后的Nginxconfiguration

我有一个带有Docker的Nginx,用于使用HTTP和HTTPS的开发环境,具体configuration如下: listen 80; listen 443 ssl; set_real_ip_from 10.0.0.0/8; real_ip_header X-Real-IP; real_ip_recursive on; location / { try_files $uri @rewriteapp; } location @rewriteapp { rewrite ^(.*)$ /app.php/$1 last; } location ~ ^/(app|app_dev|app_test|config)\.php(/|$) { fastcgi_pass php-upstream; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS $https; } 我想testing我的本地环境中的HTTP和HTTPS,但在生产中,我有一个Nginx反向代理前面: upstream app_upstream { server app:80; } server { server_name $APP_DOMAIN; […]

Docker推送问题本地registryhttps访问权限被拒绝

我的registrydocker有问题。 我的“服务器”VM在kali-linux上。 我在HTTP中创build了registrydocker工具,并使用一个centOS VM作为客户端。 我宣布registry不安全的客户端虚拟机,它的工作完美。 现在我试着把它放在HTTPS中。 为了做到这一点,我使用nginx作为代理。 我遵循这个教程: 第5步 – 设置SSL除了第8部分 ,使之成为服务(我不知道为什么,但我不能做到这一点)。 因为我没有域名,所以我用了一个。 为了得到认可,我在两个虚拟机上的/ etc / hosts文件中添加了我的IP(192.168.XX)和我使用的域名(myregistryexemple)。 正如教程所问,我在我的“服务器”虚拟机(kali)上生成了证书,并通过scp将其发送给我的客户机虚拟机。 由于这个命令,我让centOS vm信任证书: yum install ca-certificates update-ca-trust force-enable cp cert.crt /etc/pki/ca-trust/source/anchors/ update-ca-trust extract 我重新启动客户端VM上的服务docker。 然后在我的kali虚拟机上启动docker registry和nginx代理“docker-compose up”。 我标记并尝试在registry中推送一个Ubuntu的: docker tag ubuntu myregistryexemple/ubuntu docker push myregistryexemple/ubuntu 但是我得到这个错误: The push refers to a repository [docker.io/myregistryexemple/ubuntu] 56827159aa8b: Preparing 440e02c3dcde: Preparing 29660d0e5bb2: […]

微服务API网关模式如何与自动水平缩放一起工作?

如果我想有一个高可用解决scheme。 所以,我会在不同的数据中心有两个API网关。 每个API网关连接到三个微型服务,如计费,用户和帐户服务。 每个人有三个副本。 那么对于一个微服务来说,这是真的有6个副本,如果没有。 它是如何工作的?

与docker混淆的东西

这几天我正在尝试为我的项目使用docker,但是我对它的一些问题感到困惑。 我的项目由nodejs + mongodb + nginx创build,现在我想用docker发布我的项目。 我不知道是否应该使用节点图像+ mongodb图像+ nginx图像,然后将它们链接在一起,或者我应该使用像centos和安装节点,mongo,nginx的基本图像,然后运行我的服务器。 另一个问题,如果我尝试第二种方法,在我的dockerfile中运行节点服务器,它需要连接mongodb使用正确的用户,但是当节点服务器运行时,mongodb还没有用户授权configuration,所以节点服务器无法运行,那么如何在Docker文件中创build用户?

从Docker容器内部,如何连接到本机的本地主机?

所以我有一个在Docker容器中运行的Nginx,我有一个运行在本地主机上的mysql,我想从我的Nginx中连接到MySql。 MySql是在本地主机上运行的,而不是向外界公开一个端口,所以它绑定在本地主机上,不绑定在机器的IP地址上。 有没有办法从这个docker集装箱连接到这个MySql或本地主机上的任何其他程序?

从卷更改目录的chmod

我正在尝试在容器中运行CakePHP 2应用程序。 我有一切设置和PHP正常工作,但有一个问题:/ var / www / app / tmp具有不正确的写入权限。 这个目录是从卷加载的

Docker用户定义的networking网关超时

我们在Ubuntu映像中有3个docker容器用于我们的产品。 在第一个容器中,有一个使用SOAP协议提供web服务的tomcat应用程序。 对于这个容器,我们已经创build了一个networking,使用下面的命令与其他容器中的静态IP进行通信: docker network create –driver=bridge –subnet=172.18.0.0/16 apinet 之后我们用下面的命令创build了我们的api: docker run –net apinet –ip 172.18.0.10 -d -p 8080:8080 api 在api中,服务正在返回大量数据,45秒后我们得到504网关超时错误。 我们试图使用api而没有指定用户定义的networking,并且我们成功地收到了响应数据。 但是,我们需要这个用户定义的networking给api一个静态IP。 反正有延长用户定义networking的网关超时值吗? 提前致谢。

如何使用docker run使用sed命令replacenginx docker image的.conf文件上的文本?

我的entrypoint.sh看起来像这样: sed -i 's/HOST_NAME/'"$HOST_NAME"'/g' /usr/local/openresty/nginx/conf/conf.d/CONFIG_FILE.conf exec "$@" CONFIG_FILE.conf是这样的: upstream gunicorn { server $HOST_NAME; } 我的docker运行命令如下所示: docker run -e HOST_NAME=http://cnn.com sid:latest cat /usr/local/openresty/nginx/conf/conf.d/CONFIG_FILE.conf 我想通过docker运行通过cnn.com来取代CONFIG_FILE.conf $HOST_NAME 。 任何帮助将不胜感激,我是新来的,所以如果我犯了愚蠢的错误,请耐心等待。 谢谢。

Docker nginx SELinux(centOS / RHEL),有403个禁止访问

所以我的Dockerfile使用docker-compose运行: Dockerfile FROM nginx #COPY conf COPY myapp/ /usr/share/nginx/html RUN chmod -R 664 /usr/share/nginx/html RUN chown -R nginx /usr/share/nginx/html RUN chcon -R -t httpd_sys_content_t /usr/share/nginx/html 这是在RHEL 6.x上,Docker也是1.7以上版本。 我甚至不需要为大多数环境运行chmod / chown / chcon! dockerfile在Windows上工作得很好。 但是,每当nginx尝试访问/ usr / share / nginx / html中的ANY文件时,仍然会收到403个Forbidden错误。 在Docker容器中设置nginx并避免这些SElinux问题的正确方法是什么? (SElinux在“执行”) 事实上,如果你这样做 RUN / CMD ls -l 我们可以看到nginx是拥有该文件夹的用户,它拥有正确的权限! 那么到底是怎么回事?

Docker – 访问链接的容器

我目前正在学习一些docker工人。 到目前为止,我已经使用php和nginx运行wordpress。 我的Dockerfiles很难编码,如果没有configuration,它们将无法工作。 所以我现在要做的是删除我所有的卷,并使用环境variables来提供我需要的信息来构build我所需的configuration文件,但我正在努力与容器的链接。 我想使用一个* .sh文件作为入口点来设置我需要在我的configuration中的值。 到现在为止,这是一件容易的事情。 我现在的问题是,我需要访问链接的容器文件系统(以取代我使用的卷)。 我有一个app.conf文件(不要怪它,我现在没有关心最佳实践或任何事情): server { listen 0.0.0.0:80; server_name _; root LINKEDADRESS/ROOT_DIR; index index.php index.html index.htm; access_log /var/log/nginx/default_access.log; error_log /var/log/nginx/default_error.log; # Pass PHP scripts to PHP-FPM location ~* \.php$ { fastcgi_index index.php; fastcgi_pass unix:LINKEDADRESS/RUND_DIR/php7-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME LINKEDADRESS/ROOT_DIR$fastcgi_script_name; } } 链接的容器是我的php / wordpress容器。 我的nginx服务器需要访问它的文件系统才能在浏览器中看到wordpress。 将ROOT_DIR设置为envvariables并不是什么大问题,但我不知道如何获取链接容器的地址来访问这些文件。 我知道链接容器导致创build一些envvariables XZW_PORT XZW_TCP_ADRESS 等等,但他们似乎依赖于链接的容器名称。 […]