Linux nginx 配置

之前自己布署这个博客时,都是一点点上网查,没有系统的学习过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;
    }
    } 

上一篇:Django restframework 认证

下一篇:Django model on_delete参数