Mag*_*nar 6 centos haproxy systemctl
通过 systemctl 运行 haproxy 与手动运行它不同。
这是通过 systemctl 启动时的输出:
> sudo systemctl status -l haproxy.service
haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled)
Active: active (running) since Wed 2014-12-24 08:08:49 EST; 4min 59s ago
Main PID: 20307 (haproxy)
CGroup: /system.slice/haproxy.service
??20307 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
Dec 24 08:08:49 localhost.localdomain systemd[1]: Starting HAProxy Load Balancer...
Dec 24 08:08:49 localhost.localdomain systemd[1]: Started HAProxy Load Balancer.
Run Code Online (Sandbox Code Playgroud)
像这样,haproxy 只对我的后端说 503。
如果我现在停止 haproxy 服务,而是在命令行上手动运行它,如下所示:
sudo /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
Run Code Online (Sandbox Code Playgroud)
它可以很好地代理我的服务器。
我已经通过 yum 安装了 haproxy,并且我使用了一个非常简单的配置:
# defaults above
frontend main *:80
default_backend app
backend app
option httpclose
option forwardfor
server web1 127.0.0.1:8001
Run Code Online (Sandbox Code Playgroud)
知道有什么区别吗?我试过同时运行它,而不是守护进程。
这是使用 systemctl 运行时的日志:
Proxy app started.
127.0.0.1:44391 [24/Dec/2014:09:01:42.403] main app/web1 0/0/-1/-1/0 503 212 - - SC-- 0/0/0/0/3 0/0 "GET / HTTP/1.1"
Run Code Online (Sandbox Code Playgroud)
这是手动运行时的日志:
Proxy app started.
127.0.0.1:44393 [24/Dec/2014:09:02:11.758] main app/web1 0/0/0/2/2 200 5699 - - ---- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Run Code Online (Sandbox Code Playgroud)
需要明确的是,我可以成功 curl 127.0.0.1:8001 作为我的部署用户,使用 sudo 和 haproxy 用户。
我尝试使用 nginx 作为代理,但无济于事。所以这里的错误并不是haproxy。nginx 说502 Bad Gateway,日志说:
2014/12/24 16:57:04 [crit] 23214#0: *1 connect() to 127.0.0.1:8001 failed (13: Permission denied) while connecting to upstream, client: 192.168.34.1, server: www.zombieclj.local, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8001/", host: "www.zombieclj.local"
Run Code Online (Sandbox Code Playgroud)
所以是的,有一些安全事情正在发生。我仍然能够卷曲到 127.0.0.1:8001。停止防火墙不会改变任何事情。
问题是 SELinux 只允许 Web 服务器与一组有限的端口建立出站连接。
通过做固定:
semanage port --add --type http_port_t --proto tcp 8001
Run Code Online (Sandbox Code Playgroud)
安装semanage后
yum install policycoreutils-python
Run Code Online (Sandbox Code Playgroud)
Nodejs Nginx 错误:(13:权限被拒绝)同时连接到上游
| 归档时间: |
|
| 查看次数: |
6190 次 |
| 最近记录: |