e8c47a0d
V2EX  ›  Node.js

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

  •  
  •   e8c47a0d · Sep 21, 2017 · 3986 views
    This topic created in 3155 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   ·   Solana   ·   3200 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 130ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.