Nginx配置

安装

下载
在这里插入图片描述
解压
在这里插入图片描述
进入目录,修改参数如下
拷贝文件添加语法识别

touch ~/.vim
cp -r contrib/vim/* ~/.vim

进入文件auto/cc/gcc关闭debug功能

  # debug
  #CFLAGS="$CFLAGS -g"

在这里插入图片描述
修改文件src/core/nginx.h关闭版本

#define NGINX_VER          "nginx"

在这里插入图片描述

编译

--with-file-aio	传输文件参数
./configure --prefix=/usr/local/nginx --with-file-aio

安装

make && make install

注:如果为版本更新,make即可,make install会覆盖所有配置文件

进入安装后目录,修改配置文件参数
修改配置文件conf/nginx.conf
添加用户nginx

useradd nginx -s /sbin/nologin

设定worker进程拥有者为nginx,默认开启两个worker进程

user nginx nginx;
worker_processes  2;

启动服务
在这里插入图片描述
查看版本

nginx -v

在这里插入图片描述
查看版本和编译参数

nginx -V

在这里插入图片描述

nginx版本更新和回退

更新
拷贝旧的nginx启动文件做保留
在这里插入图片描述
编译,make新的版本
在这里插入图片描述
拷贝生成的objs目录下的启动文件nginx

cp -f nginx-1.17.1/objs/nginx /usr/local/nginx/sbin/nginx

在这里插入图片描述
拉起worker进程

kill -USR2 old master's pid

在这里插入图片描述

kill -WINCH old master's pid

在这里插入图片描述
!!!如果没有问题

kill -9 old master's pid

回退
拷贝旧的启动文件
在这里插入图片描述

回退旧进程的worker进程

kill -HUP old master's pid

在这里插入图片描述

拉起新产生的worker进程

 kill -WINCH new master's pid

在这里插入图片描述
杀死更新进程
kill -9 new master's pid在这里插入图片描述

备份切割日志

编写备份脚本

#! /bin/bash
LOGS_PATH=/usr/local/nginx/logs/oldlogs
CUR_LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date +%F -d -2day)

mv $CUR_LOGS_PATH/access.log $LOGS_PATH/${YESTERDAY}_access.log
mv $CUR_LOGS_PATH/error.log $LOGS_PATH/${YESTERDAY}_error.log

#/usr/local/nginx/sbin/nginx -s reopen
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

定时任务执行

00 00 * * *  /bin/sh /usr/local/nginx/logs/backup.sh

在这里插入图片描述
查看结果
在这里插入图片描述

系统方式启动

拷贝httpd的模板文件

cp /usr/lib/systemd/system/httpd.service /etc/systemd/system/multi-user.target.wants/nginx.service

修改文件内容

[Unit]
Description=The Nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

在这里插入图片描述
重新加载systemd服务

systemctl daemon-reload

执行结果
在这里插入图片描述

Nginx参数

压缩参数

gzip on;
# 20k以下不进行压缩
gzip_min_length 20;
# 压缩等级1-9
gzip_comp_level 3;
# 压缩种类
gzip_types text/html text/plain application/x-javascript; 

在这里插入图片描述
重新加载服务

    systemctl reload nginx        

打开网页

在这里插入图片描述
限制参数

限制worker可连接数
worker_connections  1024;
限制请求连接数
limit_conn_zone $binary_remote_addr zone=addr:10m;
限制处理请求速率
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
指定目录
location /download/ {
使用限制请求的连接数
	limit_conn addr 1;
限制连接速率
	limit_rate 50k;   /     set $limit_rate 50k;
限制请求处理速率,指定队列为5
	limit_req  zone=one burst=5;
}   

设置限制参数
在这里插入图片描述
使用限制参数
在这里插入图片描述
结果:由于限制速率,导致图片加载速度变慢,只加载了一半
在这里插入图片描述
日志

 日制格式
 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/nginx.log  main;

在这里插入图片描述
重启,产生新的日志,访问,查看结果
在这里插入图片描述
real_ip参数(忽略代理记录真实客户机)
重新编译服务器nginx,添加模块http_realip_module
配置代理(172.25.42.2)

upstream 172.25.41.2 {
    server 172.25.41.1;
}
server {
    listen       80;
    location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://172.25.41.2;
    } 
}

在这里插入图片描述
配置服务器realip参数(172.25.41.1)

server {
        listen       80;
        server_name  www.octopus.com;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;
    set_real_ip_from 172.25.41.2;
        real_ip_header X-Forwarded-For;
        real_ip_recursive on;
    location / {
        root   html;
        index  index.html index.htm;
    }
}

在这里插入图片描述
启动代理,启动服务器,配置客户机(172.25.41.254)解析,访问
在这里插入图片描述
查看日志
在这里插入图片描述

https
重新编译nginx,添加ssl模块
在这里插入图片描述
生成自签名证书(如果有证书,忽略,这一步)
在这里插入图片描述
导入证书
在这里插入图片描述
编辑服务器配置文件

server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      cert.pem;
    ssl_certificate_key  cert.pem;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        root   /web;
        index  index.html;
    }
}

在这里插入图片描述
新建目录,编写主页面
在这里插入图片描述
客户机配置访问
在这里插入图片描述
图片压缩参数
重新编译nginx
在这里插入图片描述
添加图片压缩模块
在这里插入图片描述
导入该模块,到nginx的模块目录下(没有就新建)
在这里插入图片描述
配置文件中导入该模块

load_module modules/ngx_http_image_filter_module.so;

在这里插入图片描述
使用该压缩参数,如果出现unsuported media的415错误类型,需要增加参数image_filter_buffer 2M;由于默认为1M,过大的图片压缩后,依然会溢出buffer

image_filter resize 150 100;
image_filter rotate 90;
image_filter_buffer 2M;

在这里插入图片描述
重启服务器,查看结果
在这里插入图片描述
重定向和反盗链(Rewrite模块)
(1)暂时重定向(浏览器不缓存)
在代理中配置重定向参数,将重定向到https://172.25.41.1

 rewrite ^/(.*)$ https://172.25.41.1/$1;

在这里插入图片描述
重启代理,访问172.25.41.2
在这里插入图片描述

(2)永久重定向(浏览器缓存)

rewrite ^/(.*)$ https://172.25.41.1/$1 permanent;

在这里插入图片描述
重启代理,再次访问
在这里插入图片描述

(3)多重定向
修改配置文件

server {
    listen 80;
    server_name www.octopus.org;
    if ( $host = "www.octopus.com"){
            rewrite ^/(.*)$ https://www.octopus.com/$1 permanent;
    }
    rewrite ^/(.*)$ https://www.octopus.com/$1 permanent;
}

在这里插入图片描述
重启服务,查看配置结果
在这里插入图片描述
(4)反盗链
创建盗链网站(172.25.41.2)
在这里插入图片描述
查看结果
在这里插入图片描述
设置反盗链,重新启动nginx

location ~* \.(gif|jpg|png|jpeg)$ {
            root /web;
            valid_referers none bloked www.octopus.com;
            if ($invalid_referer) {
            	# 也可以再此设置重定向,进入自己的网站
                return 403;
            }
        }

在这里插入图片描述
再次进行访问
在这里插入图片描述
也可以配置重定向到某个链接

 location ~* \.(gif|jpg|jpeg)$ {
            root /web;
            valid_referers none bloked www.octopus.com;
            if ($invalid_referer) {
                rewrite ^/ http://www.octopus.com/11111.png;
            }
        }

在这里插入图片描述
重定向到新的图片
在这里插入图片描述
openresty使用配置缓存(proxy_cache)
修改nginx服务器的配置文件,使得只监听本地127.0.0.1:8080,同时编写主文件如下
修改配置文件

   server {
        listen       127.0.0.1:8080;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
}

在这里插入图片描述
修改主文件
在这里插入图片描述
启动nginx,本地测试
在这里插入图片描述
编译安装openresty

./configure --prefix=/usr/local/openresty

在这里插入图片描述
修改配置文件,添加代理以及缓存配置

代理主机的nginx服务器

upstream octopus {
    server 127.0.0.1:8080;
}

设置缓存

proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m inactive=7d max_size=100g;


server {
    listen       80;
    server_name  www.octopus.org;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
            proxy_set_header Host $host;
            proxy_set_header X_Real_IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache my_cache;
            proxy_cache_valid 200 404 10d;
            proxy_cache_key $host$uri$is_args$args;
            proxy_pass http://octopus;
    }

在这里插入图片描述

启动代理,测试
在这里插入图片描述
查看缓存文件
在这里插入图片描述
此时关闭nginx服务器,仅打开代理,依然可以正常访问
Goaccess的使用
安装依赖

yum install GeoIP-devel-1.5.0-11.el7.x86_64 ncurses-devel.x86_64   -y

编译安装软件

./configure --prefix=/usr/local/goaccess --enable-utf8  --enable-geoip=legacy --with-openssl

在这里插入图片描述
链接可执行文件至/bin下

ln -s /usr/local/goaccess/bin/goaccess /usr/bin/

执行分析命令,分析nginx服务器的日志,并以html页面展示

goaccess access.log -o ../html/report.html --real-time-html --time-format='%H:%M:%S' --date-format='%d/%b/%Y' --log-format=COMBINED

在这里插入图片描述
配置文件中添加该生成的html(由于之前做了缓存,此时放在代理的配置文件中)

location /report.html {
		alias /usr/local/nginx/html/report.html;
}

在这里插入图片描述
重启代理,访问
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值