之前自己布署这个博客时,都是一点点上网查,没有系统的学习过nginx配置
下面是一些nginx配置(这里以tenginx)
下载安装:
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
解压:
tar -zxvf tengine-2.3.2.tar.gz
编译安装:
cd /tengine
./configure --prefix=/opt/tbnginx/
make && make install
几个文件夹所放的文件说明:
conf 存放nginx的配置文件
html 存放nginx的配置文件
logs 存放nginx的运行日志,错误日志,访问日志
sbin 存放可执行命令
配置环境变量
vim /etc/profile
# 修改path将tbnginx加入环境变量
PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tbnginx/sbin"
手动读取配置
source /etc/profile
启动运行相关命令
#直接输入nginx命令,第一次是启动nginx
nginx -s stop 停止
nginx -s reload 平滑重启
nginx -t 检测语法
nginx配置文件:
全局变量:
pid logs/nginx.pid 启动时将pid写入文件,读取就行
gzip on;
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
#server{}是定义虚拟主机功能
server {
#定义网站的端口
listen 81;
#定义网站匹配的域名
server_name localhost;
#server_name _;
#server_name www.s24python.com;
#定义虚拟主机的访问日志功能,记录用户的ip,以及请求信息,和爬虫代理后面的真实ip等功能
#access_log logs/host.access.log main;
#access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
# location作用是匹配url,如同 django的 url.py功能一样
# 最低级匹配,当请求时 192.168.16.85:81/ 就进入如下location
location / {
#这个root关键词 是定义静态文件存放目录的
root /opt/s24html;
#index参数,定义网站首页文件名的
index index.html index.htm;
}
# 这个location可以定义多个,比如 你想让 192.168.16.85:81/static/js/luffy.js
location /static {
#给路径添加别名
alias /opt/s24crm/static/;
}
访问日志
nginx的访问日志功能,404页面页面功能,都是打开nginx.conf即可配置
访问日志功能:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main;
error_page 404 /404.html;
负载均衡
调度算法 概述
轮询 按时间顺序逐一分配到不同的后端服务器(默认)
weight 加权轮询,weight值越大,分配到的访问几率越高
ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发
#通过upstream关键词,定义服务器地址池
upstream s24server {
server 127.0.0.1:81;
server 127.0.0.1:82;
server 127.0.0.1:83;
}
#定义第一个虚拟主机 server{} ,功能是 进行反向代理,负载均衡
server {
listen 80;
server_name _;
location / {
proxy_pass http://s24server;
include proxy_params; #需要手动创建
}
}
#第二个server,模拟第一台django
server {
listen 81;
server_name _;
location / {
root /opt/s24django1;
index index.html;
}
}
#定义第三个server,模拟第二台django
server {
listen 82;
server_name _;
location / {
root /opt/s24django2;
index index.html;
}
}
#定义第四个server,模拟第三台django,讲道理,这三台django应该提供一样的数据
server {
listen 83;
server_name _;
location / {
root /opt/s24django3;
index index.html;
}
}