使用 eggjs 开发 REST API 服务,还需要 Nginx 反向代理吗?
发布于 7 个月前 作者 xuxu7 2446 次浏览 来自 问答

背景

  1. 目前 eggjs REST API 应用程序部署在单个服务器上,使用 Nginx 作端口转发 80 -> 7001。
  2. 个人没有大项目经验,后端部署从来都是一个数据库 + 一个 API 服务

问题

仅仅端口转发感觉这没多大意义,对于是否有必要使用 Nginx 大家有什么建议?

Nginx 配置:

server {
        listen 80;
        listen [::]:80;
        server_name api.myserver.com;
        location / {
                proxy_set_header   X-Forwarded-For $remote_addr;
                proxy_set_header   Host $http_host;
                proxy_pass         http://localhost:7001;
        }
}
4 回复
  1. 方便做多站,nginx 根据域名的不同,做不同端口的反向代理。
  2. 安全,nginx 的用户是 nobody ,权限低。
  3. https 快,C 的优势。
  4. 方便做负载均衡或者其他的一些操作。

好,谢谢,看来 Nginx 的场景很多

2 安全,nginx 的用户是 nobody ,权限低

通过 apt install nginx 安装后,默认用户变成了 www-data

user www-data;
worker_processes auto;
pid /run/nginx.pid;

可能原因是:

on earlier Unixes and Linux distributions daemon (for example a webserver) were called under the nobody user. If a malicious user gained control over such a daemon, the damage he can perform is limited to what the daemon can. But the problem is, when there are multiple daemons running with the nobody user, this has no sense anymore. That’s why today such daemons have their own user.

引用来自 https://unix.stackexchange.com/a/186581/232345

回到顶部