LAMP网站架构---(一)Nginx

本文详细介绍了Nginx的特性、与Apache的区别,以及如何搭建、配置和优化Nginx。内容涵盖安装插件、并发优化、负载均衡、平滑升级、限流策略、配置管理和重定向等,旨在提供全面的Nginx操作指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网址导航:

官网nginx.org
www.nginx.com
常用参数

一、 nginx的基本信息
1. 什么是nginx

—Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
—Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2. nginx的优点

(1)跨平台、配置简单;
(2)非阻塞、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发;
(3)内存消耗小:开启10个nginx才占150M内存,Nginx采取了分阶段资源分配技术;
(4)nginx处理静态文件好,耗费内存少;
(5)内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。
(6)节省宽带:支持GZIP压缩,可以添加浏览器本地缓存;
(7)稳定性高:宕机的概率非常小
(8)master/worker结构:一个master进程,生成一个或者多个worker进程。
(9)接收用户请求是异步的:浏览器将请求发送到nginx服务器,它先将用户请求全部接收下来,再一次性发送给后端web服务器,极大减轻了web服务器的压力;
(10)一边接收web服务器的返回数据,一边发送给浏览器客户端;
(11)网络依赖性比较低,只要ping通就可以负载均衡;
(12)事件驱动:通信机制采用epoll模型。

3. nginx和Apache的区别

两者最核心的区别在于apache是同步多进程模型,一个request对应一个进程,而nginx是异步的,多个连接(万级别)可以对应一个进程。
一般来说,需要性能的web服务,用nginx,如果不需要性能只求稳定,更考虑Apache,后者的各种模块实现的比前者好很多,更通用的方案是,前端nginx抗并发,后端apache集群,配合起来会更好。

二、nginx的搭建部署
1、安装所需插件
1.1 安装gcc

gcc是linux下的编译器,它可以编译 C,C++,Ada,Object C和Java等语言

yum install -y gcc 
gcc -v	查看gcc版本
1.2安装pcre-devel

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

yum install -y pcre-devel
1.3 安装openssl

openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔

yum install -y openssl-devel
2. 安装nginx
wget https://nginx.org/download/nginx-1.20.1.tar.gz	下载安装包
tar zxf nginx-1.20.1.tar.gz							解压
vim /root/nginx-1.20.1/auto/cc/gcc					关闭debug
	#debug
	#CFLAGS="$CFLAGS -g"	
./configure --prefix=/usr/local/nginx --with-threads --with-file-aio --with-http_ssl_module --with-http_stub_status_module	编译
make	
make install 
3. 初始化配置nginx
ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/	建立软链接开启全局nginx
which nginx
nginx -t												检测语法
nginx													开启服务
netstat -antlp											查看端口
ps ax | grep nginx										查看进程
useradd -d /usr/local/nginx/ -M -s /sbin/nologin nginx	建立nginx的管理用户
vim /usr/local/nginx/conf/nginx.conf 					编辑初始化配置文件
	user  nginx;						管理用户
	worker_processes  2或者auto;			工作进程数,不得大于cpu内核数
	
  		worker_connections  65535;		单个工作进程并发连接数
	}
	
vim /etc/security/limits.conf
	nginx - nofile 65536								worker进程的最大打开文件数限制,大于单个工作进程并发连接数
nginx -s reload											重置服务不报错
nginx -s stop											停止服务
cd /usr/lib/systemd/system								开启systemd启动
vim nginx.service	
	[Unit]										对服务的说明
	Description=The NGINX HTTP and reverse proxy server	描述服务
	After=syslog.target network.target remote-fs.target nss-lookup.target		描述服务类别

	[Service]									服务的一些具体运行参数的设置
	Type=forking								后台运行的形式
	PIDFile=/usr/local/nginx/logs/nginx.pid		PID文件的路径
	ExecStartPre=/usr/local/sbin/nginx -t		启动准备
	ExecStart=/usr/local/sbin/nginx				启动命令
	ExecReload=/usr/local/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			启动服务
systemctl status nginx							查看nginx状态
vim /usr/local/nginx/html/index.html
	1111
nginx -s reload
4. 测试

宿主机中测试:

vim /etc/hosts
	172.25.28.1	www.westos.org
curl www.tao.com
	1111			成功
三、并发优化
ulimit -a 可以查看用户可以打开文件的限制	##open files
sysctl -a | grep file				##打开文件的限制
///fs.file-max = 183593
free -m
四、负载均衡+反向代理
4.1 负载均衡

server1:

scp -r /usr/local/nginx/ [email protected]:/usr/local/
scp -r /usr/local/nginx  root@server3:/usr/local/

server2:

vim /usr/local/nginx/html/index.html
	2222
vim /usr/local/nginx/conf/nginx.conf
	#user  nginx;
	worker_processes  auto;
    	worker_conn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值