小编sgo*_*ohl的帖子

docker swarm 服务前的 nginx

我在思考这意味着如何认真地完成数周,但尚未得出结论。也许我想错了方向。

假设您有一百个网络应用程序来来去去。你想要一个像 gitlab 这样的 nginx 配置:

location / {
  proxy_pass http://gitlab;
}
Run Code Online (Sandbox Code Playgroud)

由于 gitlab 是用 来创建的docker service create,nginx 将能够通过它在你的入口网络中的 swarm-vip 假 dns 名称来解析 gitlab。

但是:仅当服务容器正在运行时。否则,nginx 将无法启动,因为 [emerg] 1#1: host not found in upstream "gitlab"

现在,当您必须运行高可用性 nginx 并且确保 proxy_pass 的应用程序正在运行不是您的业务时,这将是一个难题。

每次更新 nginx 服务时,如果其他一百个 swarm 服务中只有一个在同一秒内没有运行,它就不会出现……wtf?

如果这不起作用,为什么我们需要在 swarm 中进行名称解析?你怎么解决这个问题?

我考虑过 consul 和 nginx 虚拟主机模板的动态生成(甚至不要考虑 docker-nginx-proxy!),但是应用程序非常不同,您可以说每个应用程序都有自己的单独配置。而这一切工作不是为了特殊原因,只是为了解决nginx的解决问题?

nginx docker docker-swarm

6
推荐指数
1
解决办法
1672
查看次数

CentOS 7 apache2 httpd + mod_fastcgi 无法安装

有人试过在 CentOS7/httpd 上安装 mod_fastcgi 吗?

由于它不在 epel 或 fusion 存储库中,我尝试了 el6 rpm,它不起作用(httpd 说:无法将模块/mod_fastcgi.so 加载到服务器中:/etc/httpd/modules/mod_fastcgi.so:未定义符号:unixd_config )。

从源代码编译 mod_fastcgi (# make top_dir=/usr/lib64/httpd) 也失败了,出现了数千个这样的错误:

/usr/include/httpd/http_config.h:574:32: error: request for member 'connection' in something not a structure or union

mod_fastcgi.c:2881:5: warning: passing argument 6 of 'ap_log_rerror_' from incompatible pointer type [enabled by default]
     ap_log_rerror(FCGI_LOG_ERR_NOERRNO, r, "FastCGI: access denied: %s", r->uri);
Run Code Online (Sandbox Code Playgroud)

SELINUX 已被禁用(以排除“拒绝访问”的原因)

我还安装了编译fastcgi的要求:httpd-devel libtool make gcc apr apr-devel。

由于 mod_fastcgi 恕我直言是连接到 PHP-FPM 的常用方法,我真的无法想象 fastcgi 不适用于 CentOS 7,所以我认为我做错了什么。

不幸的是,mod_proxy 对套接字连接的支持从 httpd 2.4.10 开始,而 CentOS 7 存储库只有 …

httpd fastcgi mod-fastcgi centos7

-2
推荐指数
1
解决办法
2万
查看次数

标签 统计

centos7 ×1

docker ×1

docker-swarm ×1

fastcgi ×1

httpd ×1

mod-fastcgi ×1

nginx ×1