整理了nginx的相关资料,包括
- 基本配置
- 负载均衡
- 常用操作命令
基本配置
nginx.conf,有注释
http://www.jianshu.com/p/d1ec1f38d80e
总结一下:
- 整个配置文件的结构就是
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream xxx {
}
server {
}
server {
}
}
- 一台服务器有多人使用的话,使用一个配置文件不太好,可以改成下面这样的结构
worker_processes 1;
events {
worker_connections 1024;
}
http {
include /your_path/your_path/*.conf
}
之后在 /your_path/you_path/ 分别建立不同项目的配置文件,如 project1.conf,其内容是:
upstream xxx {
}
server {
}
- 使用不同的Web Server时,server模块的写法不一样,需要参考对应的官方文档,flask+gunicorn的写法与前面文档一致,如果是django+uwsgi的话,写法会是
upstream django {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name xxx.com;
...
# 不同点在这里
location / {
uwsgi_pass: django;
include /yourpath/uwsgi_params;
}
}
负载均衡
有些服务需要部署于多台服务器,以使处理速度更快,其中一种简单的实现方式,就是配置nginx,实现请求的转发。配置的方法在上面基本配置的文档中已有,在此摘出来再看一下
#首先定义upstream
upstream upstream_name {
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重
#weight参数表示权值,权值越高被分配到的几率越大。
server 192.16.10.23:8080 weight=3;
server 192.16.10.23:7070 weight=4;
server 192.16.10.43:7070 weight=3;
}
#server的配置
server {
#监听端口
listen 80;
#域名可以有多个,用空格隔开
server_name www.yourwebsite.com yourwebsite.com;
#对 "/" 启用反向代理,用户访问我们的网站时,就会被分发到upstream中的服务器处理
location / {
proxy_pass http://upstream_name;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
常用操作命令
查看版本信息
cd */nginx/sbin
./nginx -v
启动nginx
cd /usr/local/nginx/sbin/
sudo ./nginx
也可以指定配置文件
sudo ./nginx -c /usr/local/nginx/conf/nginx.conf
查看进程
ps -ef | grep nginx
kill进程
从容停止
kill -QUIT PID(进程号)
快速停止
kill -TERM PID
kili -INT PID
强制停止
pkill -g nginx
验证配置文件是否正确
cd /usr/local/nginx/sbin/
./nginx -t
nginx 重启
方法一:
cd /usr/local/nginx/sbin/
./nginx -s reload
方法二:
kill -HUP PID