Nginx设置

配置

下面这两个文件是Nginx的默认配置文件(nginx.conf是Nginx通用配置(或者叫全局配置)主要是__HTTP__这块,default.conf是网站的默认配置,是__Server__部分)

/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf

特别提一下includenginx.conf通过include调用外部的设置,可以避免把Nginx全局设置弄得特别杂乱,include写法参考下面

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

关于具体每个网站的设置,很多教程都是说把网站的配置文件(比如mysite.conf,也可以不用后缀,直接mysite或者mysite.com这样)添加到
/etc/nginx/sites-available/
然后做一个symlink(符号链接)
ln -s /etc/nginx/sites-available/mysite.conf
链接到
/etc/nginx/sites-enabled/
但是,为何不直接把网站的设置文件添加到
/etc/nginx/conf.d/
像下面这样,也不用麻烦的设置符号链接
/etc/nginx/conf.d/mysite.conf
Nginx默认配置里面就有下面这条引用
include /etc/nginx/conf.d/*.conf;
而没有下面这条引用规则的
include /etc/nginx/sites-enabled/*;
而且在/etc/nginx/conf.d/目录下面有默认配置文件default.conf这难道不说明一个问题吗?不知道是新旧版本的差异还是别的什么原因

另外,服务器的日志文件,对应的在nginx.confmysite.conf里面设置即可,如默认Nginx日志存储位置如下:

/var/log/nginx/access.log
/var/log/nginx/error.log

下面是基本的gzip设置(注意去掉注释,参数可根据自己的需求做修改),更多选项可以参考Nginx官网文档

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

Nginx最基本命令

systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
systemctl reload nginx.service

最基本的forever命令

下面是用于Ghost博客程序的

NODE_ENV=production forever start index.js
forever list
forever stop index.js

注意NODE_ENV=production,production即生产环境

PM2

PM2设置

echo "export NODE_ENV=production" >> ~/.profile

export NODE_ENV="production"

NODE_ENV=production pm2 start index.js --name ghost

PM2常用命令

pm2 list
pm2 stop     <app_name|id|all>
pm2 restart  <app_name|id|all>
pm2 monit

pm2 logs
pm2 logs big-api
pm2 flush          # Clear all the logs

未完待续……