本文为一个Nginx下转发NodeJS的一个项目
NodeJS项目部署好的地址为:http://localhost:3000;
一、安装nginx
yum install nginx -y
若不行,
cd /etc/yum.repos.d/
vi nginx.repo
然后输出以下代码
[nginx]
name=nginx repo
baseurl=http:
//nginx
.org
/packages/centos/
$releasever/$basearch/
gpgcheck=0
enabled=1
然后在使用
yum install nginx -y
二、配置nginx
1、安装完nginx之后
①:启动nginx /etc/init.d/nginx start(若失败查看第三项:注意事项)
②:执行 cd /etc/nginx/ 转到/etc/nginx/ 目录下
③:然后执行 vi nginx.conf 编辑 nginx.config
④:将# include /etc/nginx/conf.d/*.conf; 的注释去掉(这个很重要,不然在第四步无法)
把上面的server{ }包括其中的内容全部删除(这些没用,可以在 /etc/nginx/conf.d/*.conf中配置)
最终nginx.conf文件中的内容只剩下可以了
⑤:执行 cd /etc/nginx/conf.d/
⑥:vi test.conf(创建一个新的nginx配置文件)
输入内容:
server {
listen 80;server_name (你的域名);
location / {
proxy_pass http://localhost:3000(这里是你想跳转的网站的地址);
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
之后保存便可
⑦:执行/etc/init.d/nginx restart (重启nginx) 若失败查看权限是否足够
⑧:nginx配置完成。
⑨:执行 curl localhost:80 测试nginx是否启动成功
若返回unauthorized或者页面信息均为成功
若返回unauthorized是访问页面的权限不足
查看NodeJS项目中是否添加了
app.use(ipfilter(['127.0.0.1', {mode: 'allow'})
这个为NodeJs的ip筛选,将ip添加到'127.0.0.1',''后面添加个ip地址或者替换掉127.0.0.1这个地址(博主因为这个权限的问题搞了两天累的不行不行)
⑩:nginx配置结束可以在页面中使用
三、注意事项:
①:nginx启动失败
原因一:权限是否足够 。使用根目录权限(sudo /etc/init.d/nginx start)
原因二:nginx启动端口80端口被占用
执行lsof -i:80 查看80端口是否被占用,若被占用则关闭该占用项目,或者修改nginx监听端口 查看 所有 .conf文件 检查server{ listen 80 修改为8080或者别的}
②:文件修改失败
请查看权限是否足够,不足申请权限。
③:80端口被防火墙阻塞则需要在iptables中添加规则
方法一:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 写入修改
/etc/init.d/iptables save 保存修改
service iptables restart 重启防火墙,修改生效
方法二:
vi /etc/sysconfig/iptables 打开配置文件加入如下语句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 重启防火墙,修改完成
④:每次修改.conf文件时切记需要重启nginx