NGINX 反向代理 node.js 程序

NGINX Open Source 是一款开源的Web服务器和反向代理,近年来因其可扩展性、出色的性能和小的占用空间而越来越受欢迎。最初,NGINX Open Source 是为了解决C10K问题(在单个Web服务器上提供10,000个并发连接)而创建的。

NGINX Open Source 的特性和性能使其成为高性能网站的必备工具,它是全球排名前 100,000 个最繁忙网站的第一名Web服务器

考虑以下的Node.js应用程序

const http = require('http');

const hostname = 'localhost';
const port = 5000;

const server = http.createServer((req, res) => {
	res.statusCode = 200;
  	res.setHeader('Content-Type', 'text/plain');
  	res.end('Sysmon App is Up and Running!\n');
});

server.listen(port, hostname, () => {
  	console.log(`Server running at http://${hostname}:${port}/`);
});

现在,在Linux上安装Nginx反向代理

创建一个名为**/etc/apt/sources.list.d/nginx.list**的文件,并添加以下内容。

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/  bionic nginx

然后,添加存储库签名密钥,更新系统软件包索引,并安装nginx软件包,如下所示。

$ wget --quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key
$ sudo apt update
$ sudo apt install nginx

在成功安装Nginx后,启动它,使其在系统启动时自动启动,并检查它是否正在运行。

<strong>---------- 在Debian/Ubuntu上 ----------</strong>
$ sudo systemctl status nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

如果您运行系统防火墙,您需要打开80端口(HTTP)443端口(HTTPS)5000端口(Node应用),这是Web服务器用于客户端连接请求的端口。

<strong>---------- 在Debian/Ubuntu上 ----------</strong>
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 5000/tcp
$ sudo ufw reload

将Nginx配置为Node.js应用的反向代理

现在,在**/etc/nginx/conf.d/**目录下为您的Node应用程序创建一个服务器块配置文件,如下所示。

$ sudo vim /etc/nginx/conf.d/sysmon.conf

复制并粘贴以下配置(将localhost更改为您的服务器IP,将yourdomainname更改为您的域名)。

server {
    listen 80;
    server_name sysmon.yourdomainname;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         http://localhost:5000;
    }
}

保存更改并退出文件。

最后,重新启动Nginx服务以应用最近的更改。

$ sudo systemctl restart nginx
或
# systemctl restart nginx

通过Web浏览器访问Node.js应用程序

现在,您应该能够在URL中访问您的Node应用程序,而无需提供它正在监听的端口:这是用户访问的更方便的方式。

http://sysmon.yourdomainname

为了使您的测试域名正常工作,您需要使用**/etc/hosts**文件设置本地DNS,打开它并在其中添加以下行(请记得像以前一样将localhost更改为您的服务器IP,将yourdomainname更改为您的域名)。

localhost sysmon.yourdomainname

恭喜!您已成功将Nginx配置为您的Node.js应用程序的反向代理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值