整理了nginx的相關資料,包括
- 基本配置
- 負載均衡
- 常用操作命令
基本配置
nginx.conf,有注釋
http://www.lxweimin.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
驗證配置文件.png