brew 安装的 nginx 怎么绑定到 127.0.0.1 的 80 端口 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
scp173
V2EX    macOS

brew 安装的 nginx 怎么绑定到 127.0.0.1 的 80 端口

  •  
  •   scp173 2022-06-29 10:23:07 +08:00 2546 次点击
    这是一个创建于 1283 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我需要启动(使用 brew 安装的) nginx 的 80 端口,但是不希望被局域网访问,系统是 macOS Monterey 12.4

    这种配置可以启动

     server { listen 0.0.0.0:80; ... } 

    这种配置不行

     server { listen 127.0.0.1:80; ... } 

    报错内容

    bind() to 127.0.0.1:80 failed (13: Permission denied) 
    16 条回复    2022-06-30 11:52:27 +08:00
    lscho
        1
    lscho  
       2022-06-29 10:38:42 +08:00
    Permission denied 是权限不够,把 nginx 的用户加一下 root 权限,或者把 nginx 的用户改为自己,然后 sudo 启动试试
    xtinput
        2
    xtinput  
       2022-06-29 10:42:18 +08:00
    上虚拟机呀
    xtinput
        3
    xtinput  
       2022-06-29 10:43:19 +08:00
    直接在主机上部署服务器环境不好,可能会出现端口冲突
    xtinput
        4
    xtinput  
       2022-06-29 10:48:41 +08:00
    https://github.com/gyf304/vmcli 直接用系统的虚拟机框架,没 GUI 的
    PerFectTime
        5
    PerFectTime  
       2022-06-29 10:54:21 +08:00
    sudo nginx
    scp173
        6
    scp173  
    OP
       2022-06-29 11:31:41 +08:00
    @xtinput 我只想起一个 http 的服务,端口在 80 而已,没必要虚拟机吧,就算端口冲突最坏的情况就修改端口咯
    scp173
        7
    scp173  
    OP
       2022-06-29 11:36:52 +08:00
    @lscho @PerFectTime 试了一下,用 sudo 可以正常工作

    但是为什么 0.0.0.0 的不会有权限问题呢
    mww
        8
    mww  
       2022-06-29 11:37:06 +08:00
    好像低于 1024 端口就需要 root 权限,最简单的方法就是端口转发
    lscho
        9
    lscho  
       2022-06-29 11:42:49 +08:00
    @scp173 0.0.0.0 的意思就是不指定任何地址,所以没有权限问题
    lululau
        10
    lululau  
       2022-06-29 11:46:59 +08:00
    把 1024 以下端口规定为受限端口其实是一个糟糕的设计,macOS 10.13 之后就没有受限端口这个机制了,只不过它的实现看起来有 bug ,这就是为什么绑到某个具体接口的时候仍然报 Perm denied:

    https://news.ycombinator.com/item?id=18302380

    brew 安装的服务可以用 brew services 启动:

    1. 以当前用户启动:brew services start nginx
    lululau
        11
    lululau  
       2022-06-29 11:47:36 +08:00
    2. 以 root 用户启动,并设置为开机自启动:sudo brew services start nginx
    lululau
        12
    lululau  
       2022-06-29 11:56:53 +08:00
    用 Alfred 的,也可以用我弄的这个 workflow: https://github.com/lululau/homebrew-services-alfred-workflow
    scp173
        13
    scp173  
    OP
       2022-06-29 11:59:53 +08:00
    @lululau 原来如此,我试了之后还以为权限改为限制在网卡上了,我原先也是认为权限是设置在 1024 一下端口上
    CEBBCAT
        14
    CEBBCAT  
       2022-06-29 12:26:37 +08:00
    提问之前别忘了搜索
    https://stackoverflow.com/a/44032912
    scp173
        15
    scp173  
    OP
       2022-06-29 12:31:26 +08:00
    @CEBBCAT 我和搜索的不一样哦,我是可以监听 80 不能监听指定网卡的 80
    scp173
        16
    scp173  
    OP
       2022-06-30 11:52:27 +08:00
    哎,目前的做法是绑定了所有网卡的 80 端口,在 [系统偏好设置] - [安全性与隐私] - [防火墙] [防火墙选项] 里禁用 nginx 的外部网络连接,以此达到使用 80 端口且防止局域网访问
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     766 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 21:18 PVG 05:18 LAX 13:18 JFK 16:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86