1. 配置环境变量

在这里插入图片描述

三部曲: ./configure ----> make ----> make install

官网下载社区版网址:nginx.org
社区版

官网下载商业版网址:nginx.com
商业版

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
知道./configure不出错之后,执行make 和make install

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
编辑gcc文件,关掉debug
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2. nginx并发优化

2.1 书写nginx的配置文件(前期工作)

- nginx作为http服务器时:
	max_clients = worker_processes * worker_connections
- nginx作为反向代理服务器时:
	max_clients = worker_processes * worker_connections / 2

worker_processes的配置

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
测试:

ab( apache bench )是apache下的一个工具,主要 用于对web站点做压力测试

基础用法:  
其中-c选项为一次发送的请求数量,即并发量。
-n选项为请求次数。

在这里插入图片描述

在这里插入图片描述

worker_connections 单个工作进程并发连接数nginx作为http服务器时:
max_clients = worker_processes * worker_connections
nginx作为反向代理服务器时:
max_clients = worker_processes * worker_connections / 2
;和user 的设定

- nginx.conf
	#user  nobody;
	
 	events {
	   worker_connections  65535;  ##设置工作的连接数
 	}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改用户进程可打开文件数限制
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.2 worker_cpu_affinity 01 10;

- worker_cpu_affinity 01 10;	//cpu有多少个核,就有几位数,1代表内核开启,
- 							0代表内核关闭;
- multi_accept on; 	//告诉nginx收到一个新连接通知后接受尽可能多的连接
- use epoll; 		//使用epoll模型
- 开启文件高效传输模式,同时设置tcp_nopush 和tcp_nodelay 为on,可以防止网路和磁盘IO阻塞。
	sendfile on;
	tcp_nopush on; 
	tcp_nodelay on;	

在这里插入图片描述
这里我使用auto,就不是用上面的方法了,俩者都一样。

在这里插入图片描述
在这里插入图片描述

2.3 负载均衡实验

首先打开server2和server3的apache服务,并且写好默认发布文件index.html

在这里插入图片描述
在这里插入图片描述
配置负载均衡文件vim nginx.conf

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
backup

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

weight权重

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ip_hash如果使用的是server3,那么就一直保持使用server3,除非3坏了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sticky cookie(专业版才可以使用的,但是还是有办法实现社区版使用的)

首先需要下载一个模块和一个服务文件,可以从下面网盘获取。‘

然后开始操作。

在这里插入图片描述

在这里插入图片描述
- daemon-reload: 重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3. nginx平滑升级和版本回退

- 一、版本升级
- 1. 下载nginx新版本软件,正常执行./configure 和make 但不要执行make install
- 2. 备份原程序:
	cd /usr/local/lnmp/nginx/sbin	
	cp nginx nginx.old
- 3. 拷贝新程序:
	cd nginx-1.19.1/objs
	\cp -f nginx /usr/local/lnmp/nginx/sbin    ##\可以去除询问,直接执行
- 4. 获取当前nginx主进程pid:
	# ps ax|grep nginx
	29636 ?        Ss     0:00 nginx: master process nginx
	29637 ?        S      0:00 nginx: worker process
	29638 ?        S      0:00 nginx: worker process
- 5. 升级新程序:
	# kill -USR2 29636
	# ps ax|grep nginx
	29636 ?        Ss     0:00 nginx: master process nginx
	29637 ?        S      0:00 nginx: worker process
	29638 ?        S      0:00 nginx: worker process
	29761 ?        S      0:00 nginx: master process nginx
	29762 ?        S      0:00 nginx: worker process
	29763 ?        S      0:00 nginx: worker process
- 6.关闭原worker进程但保留主进程:为了回退
	# kill -WINCH 29636
	# ps ax|grep nginx
	29636 ?        Ss     0:00 nginx: master process nginx
	29761 ?        S      0:00 nginx: master process nginx
	29762 ?        S      0:00 nginx: worker process
	29763 ?        S      0:00 nginx: worker process

- 二、版本回退
- 1. 版本回退:
	还原nginx程序:# cp -f nginx.old nginx
	唤醒原进程:# kill -HUP 29636
	回收新版本的worker进程: kill -WINCH 29761
	关闭新版本主进程: kill -QUIT 29761

版本升级

老版本的/usr/local/nginx/sbin/nginx文件备份
在这里插入图片描述
高版本的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
出错后的修改步骤

在这里插入图片描述

在这里插入图片描述

版本回退

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
错误问题

在这里插入图片描述
在这里插入图片描述

4. nginx限流

- 控制单IP并发连接数:
	http {
	limit_conn_zone $binary_remote_addr zone=addr:10m; 
	//$binary_remote_addr 表示通过remote_addr这个标识来做限制
	//zone=addr:10m 表示生成一个大小为10M,名字为addr的内存区域
	...
	server {
	location /download/ {
	    limit_conn addr 1;		#限制并发数
	    limit_rate 50k;			#限制带宽
	   }
	}

- 限制单位时间内的请求数目,以及速度限制:
	http {
	limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
	//rate=1r/s表示允许相同标识的客户端的访问频次,这里限制的是每秒1次
	...
	server {
	location / {
	       limit_req zone=one;               ##限制请求数目为1
	#	 limit_req zone=one burst=5          ##5个人排队
	#	 limit_req zone=one burst=5 nodelay; ##没有延时
	}
	}

控制单IP并发连接数
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

限制单位时间内的请求数目,以及速度限制

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

限制带宽

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.nginx配置管理

- 自动索引:下载方便
	location / {
	    autoindex on;
	}
	
- Nginx expire缓存配置: 缓存可以降低网站带宽,加速用户访问
	location ~ .*\.(gif|jpg|png)$ {
	    expires 365d;
	    root /www;
	}
- 日志轮询:
	- 	# cat nginxlog.sh 
		#!/bin/bash
		cd /usr/local/nginx/logs && mv access.log access_$(date +%F -d -1day).log
		kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
	
	-	再加入crontab定时任务
		00 00 * * * /opt/scripts/nginxlog.sh &> /dev/null
		为了安全,日志目录不需要给你nginx用户访问权限
		# chmod -R 700 /usr/local/nginx/logs

- 禁用不必要的日志记录,以节省磁盘IO的消耗
	location ~ .*\.(js|jpg|jpeg|png|css|bmp|gif)$ {
		access_log off;
	}
- 站点目录和文件的限制
	location ~ ^/images/.*\.(sh|php)$ {
	                deny all;
	        }
- 中文乱码
	charset utf-8;

自动索引:下载方便
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Nginx expire缓存配置: 缓存可以降低网站带宽,加速用户访问

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

日志轮询:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

禁用没用的日志

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

访问文件的限制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

中文乱码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

限制IP

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6. nginx重定向

- 防止域名恶意解析到服务器IP:
	server { 
	listen 80; 
	server_name   _; 
	return 500; 
	} 
- 也可以重定向:
	server { 
	listen 80; 
	server_name   _; 
	rewrite ^(.*) http://www.westos.org permanent; 
	} 
- 80重定向443:
	server {
		listen 80;
		server_name www.westos.org;
		rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
	}
- www.westos.org/bbs 重定向bbs.westos.org:
	rewrite ^/bbs$ http://bbs.westos.org permanent;
	rewrite ^/bbs/(.*)$ http://bbs.westos.org/$1 permanent;
- bbs.westos.org 重定向www.westos.org/bbs:
	if ($host = "bbs.westos.org"){
		rewrite ^/(.*)$ http://www.westos.org/bbs/$1 permanent;
	}

== 防止域名恶意解析到服务器IP==

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

== 重定向==

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

80重定向443

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建密钥和证书
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

真机访问查看效果
在这里插入图片描述
上面只是生成证书,然后需要手动输入https://www.westos.org。以下操作是当访问www.westos.org时自动跳转到https://www.westos.org

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

www.westos.org/bbs 重定向bbs.westos.org

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

bbs.westos.org 重定向www.westos.org/bbs:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. 防盗链

- location ~ \.(jpg|png)$ {
            valid_referers none blocked www.westos.org;
            if ($invalid_referer) {
                    return 403;
                    #rewrite ^/ http://www2.westos.org/daolian.jpg;
            }
    }

在这里插入图片描述
在这里插入图片描述

server2主机

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

真机
在这里插入图片描述
server1
在这里插入图片描述
在这里插入图片描述

防盗链的设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直接访问的是server3下的/var/www/html/下的daolian.jpg
在这里插入图片描述
在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐