Node.js 在同一域名nginx中创建MEANJS应用程序到Wordpress博客的链接
我正在端口3000运行一个节点应用程序,我的Nginx服务器正在成功地从端口80重定向到该端口。但是在我的Node应用程序中,我有一个wordpress博客,我正在使用Apache在端口8080上运行它。我无法将node应用程序链接到此博客,并不断收到404错误 我曾经用过: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上设置我的
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
以下是我所做的事情:
[注意:您也尝试了ng click=“$event.stopPropagation()”和window.location='/blog]
编辑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