这段时间我阅读的内容比以往任何时候都多,这将是我的第一个网页,所以我决定安装在 nodejs 上。我非常快速地制作应用程序并在 localhost:9000 中进行测试
所以我想在 VPS 上运行更多应用程序,我搜索信息,我有两个选择
首先使用 nginx 代理应用程序...
upstream example1.com {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name www.example1.com;
rewrite ^/(.*) http://example1.com/$1 permanent;
}
# the nginx server instance
server {
listen 80;
server_name example1.com;
access_log /var/log/nginx/example1.com/access.log;
# pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://example1.com;
proxy_redirect off;
}
}
我不理解这个配置文件,因为我从不使用 nginx,所以我搜索了第二个选项
使用来自 expressjs() 的虚拟主机
express()
.use(express.vhost('m.mysite.com', require('/path/to/m').app))
.use(express.vhost('sync.mysite.com', require('/path/to/sync').app))
.listen(80)
我正在使用 expressjs,并且我了解如何配置,但是有一些关于 wich 是最佳选择的问题,因为使用 express() 我有一个应用程序管理多个应用程序,所以我认为这不是一个好的做法并且浪费资源。
从这篇文章中,大卫埃利斯说
如果你不需要使用 WebSockets(或者任何 HTTP 1.1 特性,真的),你可以使用 NginX 作为你的代理。
优点是 NginX 可以处理的总负载与 Node 相比更高(基本上是静态编译和专门用于此类事情的),但是您失去了流式传输任何数据的能力(一次发送较小的块)。
对于较小的站点,或者如果您不确定将来需要哪些功能,最好坚持使用 node-http-proxy 并且仅在您可以证明代理是服务器上的瓶颈时才切换到 NginX。幸运的是,如果您以后确实需要 NginX,设置起来并不难。
从这篇文章中,我阅读了一个使用许多应用程序配置 xginx 的示例,但我不明白如何为我使用它
upstream example1.com {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name www.example1.com;
rewrite ^/(.*) http://example1.com/$1 permanent;
}
# the nginx server instance
server {
listen 80;
server_name example1.com;
access_log /var/log/nginx/example1.com/access.log;
# pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://example1.com;
proxy_redirect off;
}
}
upstream example2.com {
server 127.0.0.1:1111;
}
server {
listen 80;
server_name www.example2.com;
rewrite ^/(.*) http://example2.com/$1 permanent;
}
# the nginx server instance
server {
listen 80;
server_name example2.com;
access_log /var/log/nginx/example2.com/access.log;
# pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://example2.com;
proxy_redirect off;
}
}
所以问题是最好的选择,使用 nginx 还是使用 vhost ???
如果我必须使用 nginx,有任何教程如何配置 nginx 以在节点 js 上服务许多应用程序???
全部