Hexo Blog优化[02] - Nginx 搭建

查看下当前Nginx进程情况

1
2
3
4
$ ps -aux | grep nginx
root 2290 0.0 0.2 13136 2148 ? Ss Jul17 0:00 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr;
http 2291 0.0 0.4 13576 4204 ? S Jul17 0:01 nginx: worker process
user 7093 0.0 0.2 6580 2304 pts/2 S+ 10:24 0:00 grep nginx

nginx 的work线程默认用http用户在跑。

1
2
$ cat /etc/passwd | grep http
http:x:33:33::/srv/http:/usr/bin/nologin

单独给Nginx分配个账户

对安全不是很懂,就按照能分就分的原则,把Nginx和http用户解耦一下,毕竟用Nginx不一定就是http。

1
2
3
4
5
$ sudo useradd -d /home/nginx -s /usr/bin/nologin nginx
$ sudo mkdir /home/nginx
$ sudo mkdir -p /home/nginx/srv/http
$ sudo chown -R nginx /home/nginx
$ sudo chgrp -R nginx /home/nginx/*

账户和目录建好了,把网页拷到http目录下就好了。

配置Nginx

...表示省略一些东西。注意不要忘了语句以;结尾(要不然服务启动不成功)。

文件: /etc/nginx/nginx.conf

1
2
3
4
5
6
7
8
9
...
user nginx;
...
location / {
root /home/nginx/srv/http;
index index.html index.htm;
}
...

改好后运行 systemctl restart nginx, 搞定。

1
2
3
4
$ ps -ef | grep nginx
root 7573 1 0 14:32 ? 00:00:00 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; error_log stderr;
nginx 7574 7573 0 14:32 ? 00:00:00 nginx: worker process
user 7778 6959 0 14:41 pts/2 00:00:00 grep nginx

好, worker process是用nginx 跑了。

小结

到此为止,git和nginx可以用各自账户跑了。接下来把git和nginx搭上线吧。