Nginx 如果端口设为 80 就不行,其他都可以,怎么破

2016-02-06 20:22:00 +08:00
 tanteng
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 ,不太懂,请多指教!谢谢!

6894 次点击
所在节点    NGINX
14 条回复
Starduster
2016-02-06 20:49:38 +08:00
使用别人做的集成环境就不要乱改了。。。删了从 brew 重新装新的 nginx 吧鬼知道那个 MAMP 里有些什么
Alwaysonline
2016-02-06 20:53:22 +08:00
不太懂,纯猜测, MAMP 会不会是还含 Apache 啊,它占了 80 端口。
donghouhe
2016-02-06 20:56:07 +08:00
reusable connection 是不是端口被占用了?
javaluo
2016-02-06 21:04:05 +08:00
netstat -an | grep "80"
kill xxx
hello2t
2016-02-06 21:16:25 +08:00
很大几率是端口被占用了
ovear
2016-02-06 21:28:44 +08:00
lz 没事开 debug 干嘛。。这段 debug 完全没有问题
问题在你的 backend 。。看看有没有其他的 host ,或者 include 了其他的文件。。
一般看到 50x ,请 check 转发, nginx 自身只带了静态文件的 handler
一般要么是 proxy_pass 炸了 要么是 fcgi_proxy 炸了
xxsoft
2016-02-06 21:30:13 +08:00
很简单运营商把 80 端口封了
wd
2016-02-06 21:30:27 +08:00
两个可能
你不是 root
别的程序占了 80
tanteng
2016-02-06 21:48:59 +08:00
@Starduster
@Alwaysonline MAMP 自带 apache 和 nginx ,可以切换和指定端口,两者切换都没问题, apache 的可以用 80 ,但是 nginx 指定 80 就不行了
kzzhr
2016-02-06 22:27:34 +08:00
mac ? 80 需要 sudo
ericls
2016-02-07 03:29:09 +08:00
既然得到了 502 说明 80 端口监听是没问题的啊!

如果端口占用,根本 nginx 都无法启动

楼主应该看看错误日志 看看什么问题
ztrt
2016-02-07 11:33:56 +08:00
php 问题
stanhou
2016-02-07 16:24:53 +08:00
你的 NGINX 的 GATEWAY 可能是 APACHE 而不是 PHP-FPM ,把你的 server{}里面的东西都粘出来应该就知道了。如果是 APACHE ,很可能通过 80 端口监听的,自然出现 502 GATEWAY ERROR 。

题外话,装个虚拟机,用 LINUX 跑服务器吧。 OSX 已经是儿童玩具了,你在上面做 WEB 开发环境,每次 OSX 升级,你都要头疼一次。
Allianzcortex
2016-02-07 23:03:48 +08:00
netstat ? 不是应该用 lsof -i:50 来查看?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255683

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX