server {
listen 80 default_server;
root "/Users/tanteng/website";
access_log /Applications/MAMP/logs/nginx_access.log;
error_log /Applications/MAMP/logs/nginx_error.log debug;
location / {
index index.html index.php;
}
上面 listen 改为其他端口就没问题,改成 80 访问就是 502 bad gateway ,看 nginx_error.log,如下 debug :
2016/02/06 20:21:08 [debug] 5685#0: *4 write new buf t:1 f:0 00000001020022C8, pos 00000001020022C8, size: 156 file: 0, size: 0
2016/02/06 20:21:08 [debug] 5685#0: *4 http write filter: l:0 f:0 s:156
2016/02/06 20:21:08 [debug] 5685#0: *4 http output filter "/MAMP/index.php?language=English"
2016/02/06 20:21:08 [debug] 5685#0: *4 http copy filter: "/MAMP/index.php?language=English"
2016/02/06 20:21:08 [debug] 5685#0: *4 http postpone filter "/MAMP/index.php?language=English" 0000000102002490
2016/02/06 20:21:08 [debug] 5685#0: *4 write old buf t:1 f:0 00000001020022C8, pos 00000001020022C8, size: 156 file: 0, size: 0
2016/02/06 20:21:08 [debug] 5685#0: *4 write new buf t:0 f:0 0000000000000000, pos 00000001001A74C8, size: 120 file: 0, size: 0
2016/02/06 20:21:08 [debug] 5685#0: *4 write new buf t:0 f:0 0000000000000000, pos 00000001001A63C0, size: 52 file: 0, size: 0
2016/02/06 20:21:08 [debug] 5685#0: *4 http write filter: l:1 f:0 s:328
2016/02/06 20:21:08 [debug] 5685#0: *4 http write filter limit 0
2016/02/06 20:21:08 [debug] 5685#0: *4 writev: 328 of 328
2016/02/06 20:21:08 [debug] 5685#0: *4 http write filter 0000000000000000
2016/02/06 20:21:08 [debug] 5685#0: *4 http copy filter: 0 "/MAMP/index.php?language=English"
2016/02/06 20:21:08 [debug] 5685#0: *4 http finalize request: 0, "/MAMP/index.php?language=English" a:1, c:3
2016/02/06 20:21:08 [debug] 5685#0: *4 http request count:3 blk:0
2016/02/06 20:21:08 [debug] 5685#0: *4 http finalize request: -4, "/MAMP/index.php?language=English" a:1, c:2
2016/02/06 20:21:08 [debug] 5685#0: *4 http request count:2 blk:0
2016/02/06 20:21:08 [debug] 5685#0: *4 http finalize request: -4, "/MAMP/index.php?language=English" a:1, c:1
2016/02/06 20:21:08 [debug] 5685#0: *4 set http keepalive handler
2016/02/06 20:21:08 [debug] 5685#0: *4 http close request
2016/02/06 20:21:08 [debug] 5685#0: *4 http log handler
2016/02/06 20:21:08 [debug] 5685#0: *4 free: 0000000102000800, unused: 2
2016/02/06 20:21:08 [debug] 5685#0: *4 free: 0000000102001800, unused: 603
2016/02/06 20:21:08 [debug] 5685#0: *4 free: 0000000102000400
2016/02/06 20:21:08 [debug] 5685#0: *4 hc free: 0000000000000000 0
2016/02/06 20:21:08 [debug] 5685#0: *4 hc busy: 0000000000000000 0
2016/02/06 20:21:08 [debug] 5685#0: *4 reusable connection: 1
2016/02/06 20:21:08 [debug] 5685#0: *4 event timer add: 24: 75000:1454761343364
2016/02/06 20:21:08 [debug] 5685#0: *4 post event 00000001008374E0
2016/02/06 20:21:08 [debug] 5685#0: *4 delete posted event 00000001008374E0
2016/02/06 20:21:08 [debug] 5685#0: *4 http empty handler
2016/02/06 20:22:23 [debug] 5685#0: *4 event timer del: 24: 1454761343364
2016/02/06 20:22:23 [debug] 5685#0: *4 http keepalive handler
2016/02/06 20:22:23 [debug] 5685#0: *4 close http connection: 24
2016/02/06 20:22:23 [debug] 5685#0: *4 reusable connection: 0
2016/02/06 20:22:23 [debug] 5685#0: *4 free: 0000000000000000
2016/02/06 20:22:23 [debug] 5685#0: *4 free: 0000000100700320, unused: 0
2016/02/06 20:22:23 [debug] 5685#0: *4 free: 0000000100700420, unused: 104
本机是 MAMP 集成环境,初次配置 nginx ,不太懂,请多指教!谢谢!
1
Starduster 2016-02-06 20:49:38 +08:00
使用别人做的集成环境就不要乱改了。。。删了从 brew 重新装新的 nginx 吧鬼知道那个 MAMP 里有些什么
|
2
Alwaysonline 2016-02-06 20:53:22 +08:00 via iPhone
不太懂,纯猜测, MAMP 会不会是还含 Apache 啊,它占了 80 端口。
|
3
donghouhe 2016-02-06 20:56:07 +08:00
reusable connection 是不是端口被占用了?
|
4
javaluo 2016-02-06 21:04:05 +08:00 via Android
netstat -an | grep "80"
kill xxx |
5
hello2t 2016-02-06 21:16:25 +08:00 via iPhone
很大几率是端口被占用了
|
6
ovear 2016-02-06 21:28:44 +08:00
lz 没事开 debug 干嘛。。这段 debug 完全没有问题
问题在你的 backend 。。看看有没有其他的 host ,或者 include 了其他的文件。。 一般看到 50x ,请 check 转发, nginx 自身只带了静态文件的 handler 一般要么是 proxy_pass 炸了 要么是 fcgi_proxy 炸了 |
7
xxsoft 2016-02-06 21:30:13 +08:00 via iPhone
很简单运营商把 80 端口封了
|
8
wd 2016-02-06 21:30:27 +08:00 via iPhone
两个可能
你不是 root 别的程序占了 80 |
9
tanteng OP @Starduster
@Alwaysonline MAMP 自带 apache 和 nginx ,可以切换和指定端口,两者切换都没问题, apache 的可以用 80 ,但是 nginx 指定 80 就不行了 |
10
kzzhr 2016-02-06 22:27:34 +08:00 via iPhone
mac ? 80 需要 sudo
|
11
ericls 2016-02-07 03:29:09 +08:00
既然得到了 502 说明 80 端口监听是没问题的啊!
如果端口占用,根本 nginx 都无法启动 楼主应该看看错误日志 看看什么问题 |
12
ztrt 2016-02-07 11:33:56 +08:00 via Android
php 问题
|
13
stanhou 2016-02-07 16:24:53 +08:00
你的 NGINX 的 GATEWAY 可能是 APACHE 而不是 PHP-FPM ,把你的 server{}里面的东西都粘出来应该就知道了。如果是 APACHE ,很可能通过 80 端口监听的,自然出现 502 GATEWAY ERROR 。
题外话,装个虚拟机,用 LINUX 跑服务器吧。 OSX 已经是儿童玩具了,你在上面做 WEB 开发环境,每次 OSX 升级,你都要头疼一次。 |
14
Allianzcortex 2016-02-07 23:03:48 +08:00
netstat ? 不是应该用 lsof -i:50 来查看?
|