通过nginx把80端口的请求都转发到nodejs的8081端口
默认情况下服务器可能会自带apache服务占用80端口,所以我们需要先尝试把apache删掉
1、删除系统中的apache服务
update-rc.d -f apache2 remove
sudo apt-get remove apache2
2、更新系统中包列表
sudo apt-get update
3、安装nginx
sudo apt-get install nginx
4、编写配置文件
cd /etc/nginx/conf.d/
sudo vim xiaoke-com-8081.conf
配置文件内容:
upstream xiaoke {
server 127.0.0.1:8081;
}
server {
listen 80;
server_name 47.52.28.218;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://xiaoke;
proxy_redirect off;
}
}
回到上层目录:cd /etc/nginx/
5、将当前目录下的nginx.conf文件下的
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
这两行取注。
6、检测nginx配置文件是否成功:
sudo nginx -t
7、重启nginx服务
sudo nginx -s reload
8、通过nginx的转发,现在ip地址的默认80端口已经可以直接访问8081端口的node服务,是不是非常神奇。
其他方面:
我们在浏览器中查看这次请求:
我们可以在这个请求的请求头中看到服务器为“nginx/1.4.6”,操作系统为“ubuntu”。这种隐私信息暴露出来是有问题的,我们需要把它隐藏掉:
//进入nginx目录
cd /etc/nginx/
//编辑配置文件
sudo vim nginx.conf
将server_tokens off;这一行取注
将nginx重载:
sudo service nginx reload
这时候请求头上的信息就不那么透明了: