我在 Node.js 中有一个在端口 3010 (domain.com:3010) 上运行的应用程序。是否可以让它在端口 80 (domain.com) 上运行?
我有一个带有 CentOS 的 VPS 服务器。我搜索了很多,但没有任何效果。
您可以按照本文所述创建虚拟主机
<VirtualHost *:80>
ServerName node.mydomain.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3010/
ProxyPassReverse http://localhost:3010/
</Location>
</VirtualHost>
IMO 最好在 Node.js 前面使用 Nginx 而不是 Apache。配置示例(我的/etc/nginx/conf.d/default.conf
文件)
upstream my-node-app {
server 127.0.0.1:3000;
}
server {
listen 80 default_server;
#server_name _;
server_name www.domain.com domain.com;
access_log /var/log/nginx.access.log main;
location / {
#root /usr/share/nginx/html;
#index index.html index.htm;
proxy_pass http://127.0.0.1:3000/;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
您可以更改应用程序配置中的端口或配置端口以在路由器中根据需要进行响应。