阿里云配置 node.js + Nginx 反向代理

学如逆水行舟

1.首先你得安装node.js,我是用nvm安装的,这样比较好控制版本,当然你也可以使用apt-get

2.下一步是安装Nginx,不去管版本的话,直接sudo apt-get install nginx就行。

3.进入/etc/nginx目录,查看nginx.conf配置文件,在http块中找到这样两句:

1
2
# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/sites-enabled/*;

看看你的这两句有没有注释掉,如果注释了就把#号去掉,没有注释的话就跳过这一步。

4.进入/etc/nginx/conf.d目录,创建我们自己的配置文件,去名规则最好是域名加端口,这样以后方便找,比如我的:rockjins-com-8081.conf,配置文件写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
upstream rockjins {
server 127.0.0.1:8081; # 这里的端口号写你node.js运行的端口号,也就是要代理的端口号,我的项目跑在8081端口上
keepalive 64;
}
server {
listen 80; #这里的端口号是你要监听的端口号
server_name 39.108.55.xxx www.rockjins.com rockjins.com; # 这里是你的服务器名称,也就是别人访问你服务的ip地址或域名,可以写多个,用空格隔开
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://rockjins; # 这里要和最上面upstream后的应用名一致,可以自定义
}
}

5.保存文件后,输入sudo nginx -t测试我们的配置文件是否有错误,一般错误都是漏个分号,少个字母之类的,错误提示很精确,没错的话会输出下面两句:

1
2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

6.现在我们需要重启Nginx,我们的配置文件才会生效,输入sudo service nginx reload;

7.最后一步把我坑惨了,弄了一晚上,就是安全组的问题,之前有篇文章还写到了这个问题,一转眼就忘了。(ssh连接服务器 Operation timed out)

因为服务跑在8081端口上,但是阿里云的安全组默认是拒绝4000端口以上的授权策略的,大家一定记得去添加安全组规则,如图:

8.打开浏览器,输入你的IP或域名,是不是把8081端口代理到80端口上了,哈哈。

希望这篇文章能够帮到你,有什么问题可以找我,大家一起进步!

本文作者:余震(Freak)
本文出处:Rockjins Blog
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN许可协议。转载请注明出处!

坚持,您的支持将鼓励我继续爬下去!