e8c47a0d
V2EX  ›  Node.js

要让 node 监听 80 的话只能用 Nginx 转发吗?

  •  
  •   e8c47a0d · Sep 21, 2017 · 4255 views
    This topic created in 3297 days ago, the information mentioned may be changed or developed.
    不知道用 root 运行 node 是否可行?因为不确定 Nginx 是否会修改 header (比如 gzip )。
    10 replies  •  2017-09-21 20:26:01 +08:00
    youxiachai
        1
    youxiachai  
       Sep 21, 2017
    吓? 80 没占用的话...不是顺便跑的吗...
    跟 root 有啥关系...你的 nginx 也是 用 root 老跑的吗?
    extreme
        2
    extreme  
       Sep 21, 2017 via iPhone
    听过“能力”吗?
    Since Kernel 2.6.33.
    ixiaohei
        3
    ixiaohei  
       Sep 21, 2017
    @youxiachai 不是 root 权限几乎不能玩 1024 以下的端口....,运维常识
    extreme
        4
    extreme  
       Sep 21, 2017 via iPhone
    @youxiachai Port <= 1024,正常情况下只有特权进程才能 Listen,Nginx 先以 root bind 再 setuid,不是以 root 身份提供服务的!
    youxiachai
        5
    youxiachai  
       Sep 21, 2017   ❤️ 1
    @ixiaohei 不是可以用 CAP_NET_BIND_SERVICE 让普通用户也能跑低端口吗....
    youxiachai
        6
    youxiachai  
       Sep 21, 2017
    @extreme 你说的..这个我知道啊...你后来补充"能力"和 setuid 不就是非 root 用户使用低端口方法吗..
    ixiaohei
        7
    ixiaohei  
       Sep 21, 2017
    @youxiachai 高内核版本随便用,低内核就呵呵
    ysc3839
        8
    ysc3839  
       Sep 21, 2017 via Android
    你这个是针对 Linux 的问题吧,应该发到 Linux 区。
    siteshen
        9
    siteshen  
       Sep 21, 2017   ❤️ 1
    看起来只是开发过程中用用,建议直接用另外的端口 3000、5000、8080 等。
    如果需要查看 header 区别,一个在 nginx 后访问,一个直接访问,把两种情况的 HTTP header 打印出来对比就行了。

    非要使用 80 端口的话,可以参考这个(来自 `brew info nginx-full`):
    $ sudo chown root:wheel /usr/local/opt/nginx-full/bin/nginx
    $ sudo chmod u+s /usr/local/opt/nginx-full/bin/nginx
    rrfeng
        10
    rrfeng  
       Sep 21, 2017
    别瞎起 header 名字 nginx 就不会改。

    居然质疑 nginx …… 你质疑 node 也好一点啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2395 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:10 · PVG 13:10 · LAX 22:10 · JFK 01:10
    ♥ Do have faith in what you're doing.