IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> LAMP架构之nginx的配置管理、并发优化、负载均衡 -> 正文阅读

[PHP知识库]LAMP架构之nginx的配置管理、并发优化、负载均衡

1.nginx源码安装

1.configure
在真机上:ssh -l root 172.25.21.1连到虚拟机server1:

wget http://nginx.org/download/nginx-1.20.1.tar.gz  #下载1.20.1版本的压缩包
tar zxf nginx-1.20.1.tar.gz 	##解压
ls
cd nginx-1.20.1/
./configure --prefix=/usr/local/nginx --with-	http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio	##设定下载目录同时安装服务,但是失败,需要下载依赖
yum install -y gcc	
yum install -y pcre-devel
yum install -y openssl-devel
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio	##重新configure

此时会生成makefile文件
在这里插入图片描述
make install #此时会安装makefile文件,则会在objs目录中生成nginx文件
ls objs/ 在这里插入图片描述

cd /usr/local/nginx/sbin
netstat -antlup   #查看端口
./nginx   #启动nginx服务
curl localhhost      #检测源码内容

在这里插入图片描述

2.nginx 并发优化
cd nginx-1.20.1/
cd /usr/local/nginx/sbin/		##开启nginx服务需要进入该目录,不方便
nginx -s stop		##关闭服务
netstat -antlp		##没有80端口
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/	##建立软链接方便开启全局nginx
nginx -s stop
make clean	##清除缓存

vim auto/cc/gcc		##瘦身nginx,减少被攻击机会
///
# debug
#CFLAGS="$CFLAGS -g"
///
cd nginx-1.20.1/
vim src/core/nginx.h
///
#define NGINX_VER          "nginx" 		##删除隐藏版本号以及/
///原本是"nginx/" NGINX_VERSION
./configure --prefix=/usr/local/nginx --with-http_ssl_module 	--with-http_stub_status_module --with-threads --with-file-aio
make 
cd objs/
ls-->nginx
du -h /usr/local/nginx/sbin/nginx	##瘦身成功,安全性提高

在这里插入图片描述

echo $PATH
nginx -t	##检测语法
curl -I localhost	##检查版本号已经被隐藏


cd /usr/local/nginx/conf
useradd -d /usr/local/nginx -M -s /sbin/nologin nginx
vim nginx.conf
///
user  nginx;
worker_processes  auto;      #并发数由1变为自动

events {
worker_connections  65535;     
}
///
cd /etc/pam.d
vim /etc/security/limits.conf 
///
ngnix  - nofile 65536	##最后一行加入
///
nginx -s reload

nginx的开机自启

cd /usr/lib/systemd/system/
lftp 172.25.254.250
> ls 
> cd pub/docs/lamp
> get nginx.service             #下载nginx服务,也可以从网页上下载
> exit
vim nginx.service
///
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-	lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
///
systemctl daemon-reload		##刷新服务列表
systemctl enable --now nginx.service	##开机自启
3.负载均衡+反向代理

在server1主机中,做负载均衡和反向代理,检测语法,重启服务,将本机配置好的nginx复制到server2主机。

cd /usr/local/nginx/conf/
vim nginx.conf
///
http {
 	   upstream westos {
	    server 172.25.21.2:80;
	    server 172.25.21.3:80;
	    }

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

 	   location / {
    	        proxy_pass http://westos;
  	     	     }
    }
}##注意此处http的后括号
///


nginx -t
nginx -s reload

在这里插入图片描述

cd /usr/local
scp -r nginx/ server2:/usr/local/

server2:建立软链接以便全局使用nginx,编辑配置文件,将server1中的设定修改回默认值,写入发布内容,在本次尝试是否能访问。

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
cd /usr/local/nginx/sbin/
ls
cd ..(nginx)
cd conf/
vim nginx.conf
///
#user  nobody;
worker_processes  auto;

events {
    worker_connections  1024;	##改回默认
}
///
nginx -t	##检测语法
cd ..(nginx)
cd html/
ls
echo server2 > index.html 
nginx
curl localhost	

在这里插入图片描述
在server3中作同样的操作,显示内容与server2相同:
在这里插入图片描述此时在真机上对快照进行地址解析,ping通www.westos.org之后便可以使用curl命令查看server主机的发布文件。

vim /etc/hosts
///
172.25.24.1     server1         www.westos.org
172.25.24.2     server2
172.25.24.3     server3
///
ping www.westos.org
curl www.westos.org

在这里插入图片描述
在这里插入图片描述
此时server2和server3的出现频率相同,当改变端口的权重,则会改变频率。在server1中改变:

cd /usr/local/nginx/conf/
vim nginx.conf
///
http {
   	  upstream westos {
  	  server 172.25.24.2:80 weight=2;	
///
nginx -t
nginx -s reload

此时显示频率会按照权重比例显示:
在这里插入图片描述

4.ip_hash

ip_hash对后端做健康检测,如果server3出问题,则调度server2(###模拟问题server3 nginx -s stop)
如果后端全挂,则http报错502(500表示服务器错误)
在server1主机中修改配置文件,在负载均衡模块中添加ip_hash,检测语法,重启服务。

vim nginx.conf
///
http {
        upstream westos {
        ip-hash;
///
nginx -t
nginx -s reload

在这里插入图片描述在server3主机中关闭nginx服务,以模仿后端该主机出现问题的情况,此时在真机做检测时,则只有server2主机的发布文件。

###server3
nginx -s stop
###真机
只有server2

server1------备用机

vim nginx.conf
///
http {
	#ip_hash
       server localhost:80 backup;	##备用机
///
nginx -t
nginx -s reload
cd ..
cd html/
ls
echo helloworld > index.html

###真机

curl www.westos.org	##helloworld
##如果后端恢复,则不会访问备用机

在这里插入图片描述当两台后端服务器都不能使用时,则显示server1备用机的发布文件。

###真机

curl www.westos.org	
helloworld

在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 11:40:28  更:2021-09-03 11:42:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 21:00:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计