无法将端口重定向到 Ubuntu VPS 上的主域页面

无法将端口重定向到 Ubuntu VPS 上的主域页面

基本上,我有一个在服务器的 4000 端口上运行的 Nodejs 程序,我希望访问者在访问 mydomain.com 的普通域时显示它,而不是必须输入 mydomain.com:4000 才能访问它,但我似乎无法让它工作。

这是我在 /etc/apache2/sites-available/ 中设置虚拟主机时所做的操作:

<VirtualHost *:80>
    ServerName my-domain.net
    ServerAlias www.my-domain.net

    DocumentRoot /var/www/my-domain/public

    <Directory /var/www/myproject/public>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/myproject-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/myproject-access.log combined


    ProxyRequests Off
    Order deny,allow
    Allow from all

    ProxyPass / http://localhost:4000
    ProxyPassReverse / http://localhost:4000

</VirtualHost>

然后我重新启动了 apache 服务器并收到此消息:(注意:“xxx.xxx.xxx.xxx”代表我的 VPS 的 IP,例如 15.26.32.9)

service apache2 restart
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/conf.d/xxx.xxx.xxx.xxx.conf:1

该文件包含的全部内容为:

NameVirtualHost xxx.xxx.xxx.xxx:8080
Listen xxx.xxx.xxx.xxx:8080
NameVirtualHost xxx.xxx.xxx.xxx:8433
Listen xxx.xxx.xxx.xxx:8433

当我尝试访问我的网站(使用 Forever 运行的 nodejs 程序)时,我总是收到 403 Forbidden 消息。这是什么原因造成的?

任何帮助都将不胜感激!

答案1

[解决方案]

我从那时起就找到了解决我的问题的方法。

对于遇到同样问题的人,请这样做。只需使用以下命令将端口 80 重定向到您想要使用的任何其他端口:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 4000 答案来源:

https://stackoverflow.com/questions/16573668/best-practices-when-running-node-js-with-port-80-ubuntu-linode

相关内容