Nginx+NodeJS反向代理设置,出现502 Bad Gateway的解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx+NodeJS反向代理设置,出现502 Bad Gateway的解决办法相关的知识,希望对你有一定的参考价值。

参考技术A 执行setsebool -P httpd_can_network_connect 1

LInux中Nginx+nodejs 反向代理

一台服务器架设多个 nodejs 网站的拓扑结构

Nginx 的安装

1、安装 nginx

sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2、查看 Nginx 源是否配置成功

 通过 yum search nginx 看看是否已经添加源成功。如果成功则执行下列命令安装 Nginx。 或者 npm info nginx 也可以看看 nginx 源是否添加成功

3、安装 Nginx

sudo yum install -y nginx

3、启动 Nginx 并设置开机自动运行

sudo systemctl start nginx 
sudo systemctl enable nginx

Nginx 反向代理配置

 

1、关闭 Selinux

 

vi etc/selinux/config
修改 SELINUX=enforcing 为 SELINUX=disabled 
必须重启 linux init 6

 

2、配置 firewalld 开启 80 端口

 

firewall-cmd --zone=public --list-ports

 

firewall-cmd --zone=public --add-port=80/tcp --permanent

3、配置反向代理

找到 /etc/nginx/conf.d 然后在里面新建对应网站的配置文件

 

server {
  listen 80;
  server_name www.bbb.com; location / {
  #设置主机头和客户端真实地址,以便服务器获取客户端真实 IP proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #禁用缓存
  proxy_buffering off;
  #反向代理的地址
  proxy_pass http://127.0.0.1:3001; }
}

重启 nginx

systemctl restart nginx 
nginx -t 看配置是否正确 
systemctl stop nginx 
systemctl start nginx

域名测试

window

找到 C:\\Windows\\System32\\drivers\\etc\\hosts

192.168.7.6  www.bbb.com  //写自己的IP

Mac

打开Terminal

在terminal界面中输入: sudo vi /etc/hosts   然后回车

会提示让你输入密码 XXXX.(注意输入密码时你看不到*号)

输入成功以后,在出现的界面中按e,转入编辑模式

输入你要设定的hosts内容,比如:127.0.0.1  api.f.com

输入完毕,如果要保存退出,按[esc],再输入:wq(注意:包含前面的冒号和后面的感叹号),再按[enter],hosts就保存生效了。

 

浏览器输入

 

www.aaa.com   nginx 转发到了 127.0.0.1:3001 

 

 

 

以上是关于Nginx+NodeJS反向代理设置,出现502 Bad Gateway的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Nginx反向代理某些请求出现502 Bad Gateway

当代理服务器关闭时,NGINX 反向代理返回 502 bad gateway

nginx串联(一台反向代理,一台分发)引起问题

nginx 反向代理服务器是何时启动nodejs服务的

nginx 502

apache反向代理出现502调整