nginx的一些坑

nginx理论上不属于前端的范畴,但是为了向本地跑一个玩玩,也是时来兴起的弄了一下,下面简单说一下里面踩的一些坑

首先环境方面要确定好,毕竟windows的命令行跟mac上的一些还是不太一样。
mac os
安装什么的,就不再赘述了,自定google。
因为我只是想搭建一个比较小的服务,通过反向代理到本地服务。
nginx的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 upstream yxy {
server 127.0.0.1:9000 max_fails=0;
}

server {
listen 80 default;
server_name cqc.pw;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
#root html;
#index index.html index.htm;
proxy_redirect off;
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_pass http://yxy;
}
}
}

简单的一个配置,主要是能让cqc.pw可以被访问,同时要修改本机的host

1
127.0.0.1 	cqc.pw

然后用nodejs本地启动一个服务

1
2
3
4
5
6
7
8
9
var http = require('http');
var server = http.createServer(function(req,res){
res.writeHead(200, {'Content-type':'text/html'});
res.end('<h1>Hello NodeJS</h1>');
}
);
server.listen(9000,function(){
console.log('server is running at 9000');
});

如果配置正常的话,访问cqc.pw是可以访问到的,但是因为mac默认是不开放80端口的,所以访问域名会无效。
关于nginx的启动,可以使用

1
brew services start nginx

但是这个启动是没有root权限的启动,包括后面的一些操作,可能都会惯用nginx的一些指令,所以这里建议都使用nginx的一些命令。
因为本身需要root权限进行启动,可能你的启动命令前面都需要加一下sudo,并且将终端开启root权限。
如果你已经启动了nginx,修改过配置文件后,请reload一下。

1
sudo nginx -s reload

我是在初次安装的时候,配置文件里面的pid被注释,解开注释之后,会报错,找不到pid的目录,这个时候,手动修改为绝对路径,会靠谱点
同时在nginx的目录下面建立logs的文件夹
关于nginx的一些其他报错,google都是可以找到的。
先到这里,毕竟不是真正的运维,也只能做一些简单的东西。