Node.js 在同一域名nginx中创建MEANJS应用程序到Wordpress博客的链接

Node.js 在同一域名nginx中创建MEANJS应用程序到Wordpress博客的链接,node.js,wordpress,apache,nginx,mean-stack,Node.js,Wordpress,Apache,Nginx,Mean Stack,我正在端口3000运行一个节点应用程序,我的Nginx服务器正在成功地从端口80重定向到该端口。但是在我的Node应用程序中,我有一个wordpress博客,我正在使用Apache在端口8080上运行它。我无法将node应用程序链接到此博客,并不断收到404错误 我曾经用过: sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000 以下是我所做的事情: 在/blog上设置我的

我正在端口3000运行一个节点应用程序,我的Nginx服务器正在成功地从端口80重定向到该端口。但是在我的Node应用程序中,我有一个wordpress博客,我正在使用Apache在端口8080上运行它。我无法将node应用程序链接到此博客,并不断收到404错误

我曾经用过:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
以下是我所做的事情:

  • 在/blog上设置我的nginx重定向到127.0.0.1:8080

    服务器{

    地点/{ 代用通行证; }

    地点/博客{ 代用通行证; } }

  • 将我的Apache指向8080,指向wordpress的根文件夹/var/www/htdocs

  • 在我的平均应用程序链接博客中,目标=\u self
    [注意:您也尝试了ng click=“$event.stopPropagation()”和window.location='/blog]

  • 现在我一直被重定向到/blog#!/我的应用程序本身出现了404错误。作为我的第一个卑鄙的应用程序,我对此有点陌生,所以如果答案显而易见,请容忍我,因为我看不到它

    编辑:显然我没有正确设置Apache,因为当我试图从外部访问myip:8080时,我无法访问端口8080上的任何内容


    编辑2:现在我可以在端口82成功访问博客,并且已经建立了我的wordpress站点。现在nginx没有检测到url mydomain.com/blog,因为它没有重定向它,节点继续通过url处理,给出404错误,但如果我输入mydomain.com:82,它会将我带到那里,然后单击任何内容就会更改为ip:82格式((这真的把我逼疯了,所以我终于解决了这个问题:)。下面是我的解决方案,以防有人想在他们的应用程序中添加Wordpress博客

    我的设置是一个Debian操作系统,运行一个Nginx服务器作为主web服务器,因此在端口80。我的节点应用程序设置为在端口3000运行,尽管我认为不需要第三台服务器,但我还是为我的Wordpress博客使用了它,端口82的Apache服务器

    现在,在我添加博客之前,我通过在iptables中设置预路由规则将所有流量从端口80重定向到3000

    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
    
    在您的Nginx处理任何事情之前,必须先删除此规则。因此,我转到我的NAT iptables,并按行号删除了此规则。我执行了以下操作

    iptables -L -t nat –line-numbers
    
    查看我的预路由规则列表并获取正确的行号,然后使用删除它

    iptables -t nat -D PREROUTING MYRULELINENUMBER
    
    在此之后,我通过在etc/nginx/sites available的sites available文件夹中添加example.com文件来设置我的nginx服务器/

    upstream app_node{
     server 127.0.0.1:3000;
     keepalive 8;
    }
    server{
     listen 0.0.0.0:80;
    
     server_name example.com;
     access_log /path/to/log;
    
     location / {
       proxy_pass http://app_node;
       //Other lines here do a basic Nginx setup search you can find them all
     }
    
     location /blog{
       proxy_pass http://127.0.0.1:82;
     }
    
    在此之后,我将此文件链接到我的nginx/站点,以使其正常运行

    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
    
    现在我的nginx已经全部设置好了,转到我的博客。我首先在var/www/myblog/中安装Wordpress,然后转到我的etc/apache2/sites可用文件夹

    如果你不知道如何在debian上安装Wordpress,看看这篇文章的结尾,我已经附上了我使用的所有链接

    apache2/sites中的My example.com文件可用

    <VirtualHost *:82>
     ServerName example.com
     DocumentRoot /var/www/myblog
     Alias /blog /var/www/myblog
    
     <Directory /var/www/myblog>
       Options FollowSymLinks
       AllowOverride All
       Order allow,deny
       allow from all
     </Directory>
    
    它将准确地向您显示当您的nginx服务器接收到请求时发生的情况。我的nginx服务器文件中有一个错误重写,导致301错误,因此请确保您的正确examples.com文件在已启用的站点中可用。 有很大帮助的链接:


    希望这对其他人有所帮助!!

    因此,我终于成功地让Nginx在/blog上重定向到我的wordpress博客。不幸的是,wordpress目前让我的生活变成了一场噩梦,因为我无法访问博客,只能访问后端管理部分。在尝试访问mydomain.com/blog时,我被重定向到127.0.0.1/blog,尽管我已经更改了NT站点url和主页的wp_选项表中的列表:/
    <a href="http://example.com/blog" target="_self">BLOG</a>
    
    wget example.com/blog