Nginx安装
一、Nginx概述
1、代理服务器
对于代理服务器,可以分为正向代理服务器和反向代理服务器两种。
正向代理服务器就是客户端的代理服务器,主要作用:隐藏(可以隐藏掉实际的客户端地址)、FQ(客户端无法或无权限访问服务器时,可以使用代理服务器访问)、提速(客户端访问服务器比较慢,但是代理客户端与服务器交互比较快,就可以使用代理服务器的链路)、缓存(代理服务器缓存请求)、授权(代理锁权限管理)
反向代理服务器就是服务器端的代理服务器,主要作用:隐藏(可以隐藏实际的服务器地址)、分布式路由(可以根据不同的路由策略,路由到不同的系统)、负载均衡、动静分离、数据缓存
正向代理和反向代理的区别主要是:客户端是否清楚自己要访问的服务器是谁、代理的位置
2、Nginx反向代理服务器
Nginx是一个轻量级、高性能、基于http的反向代理服务器,静态web服务器,其特点如下:
(1)高并发
一个Nginx服务器不做任何配置的情况下,并发量可达1000左右,在硬件条件允许的情况下,Nginx可以支持高达5~10万的并发量(除了Nginx的配置外,Linux主机也需要做大量的设置来配合Nginx)。
对比一下Tomcat,Tomcat的默认并发量为150(不做任何配置),即当有超过150个用户同时访问某个Servlet时,Tomcat的响应就会变得非常慢。
(2)低消耗
官方给出的测试结果,10000个非活跃连接,在Nginx中仅消耗2.5M内存,对于一般的DoS攻击来说都不是事,但是对于DDos也会有问题。
(3)热部署
可以在7*24小时不间断服务的前提下,进行Nginx版本的平滑升级,Nginx配置文件的平滑修改,即在不停机的情况下升级Nginx,修改、替换配置文件。
(4)高可用
Nginx由于有很多工作线程worker,因此可以实现高并发。当这些工作进程中某些进程出现问题而停止工作,并不会影响整个系统的整体运行,因为其他worker会接替那些出现问题的线程。
(5)高扩展
Nginx的很多功能都是已经开发好的功能模块,若需要哪些功能,只需要安装响应功能的扩展模块即可。根据编写模块所使用的语言不通,可以分为C语言扩展模块和LUA脚本扩展模块两类。
二、Nginx安装
1、环境准备
下载nginx并解压,nginx官网:http://nginx.org/ ,同时由于Nginx是C语言编写的,所以对其进行编译就需要使用相关编译器,对于C/C++编译器,使用最多的是gcc和gcc-c++,这两个一般在centerOS中是没有安装的,还有,基本的Nginx功能依赖于一些基本的库,在安装Nginx之前需要提前安装这些库。
#下载解压nginx wget http://nginx.org/download/nginx-1.18.0.tar.gz tar -zxvf nginx-1.18.0.tar.gz #安装gcc yum -y install gcc-c++ #安装依赖库 yum -y install pcre-devel openssl-devel
2、安装nginx
在安装前,需要先生成makefile,如果没有makefile,编译会报错。
#生成makefile ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre #编译安装 make && make install
3、配置全局命令
上一步中已经将nginx安装到了/usr/local/nginx目录下(--prefix配置参数),可以到该目录的sbin目录下查看nginx提供的命令(其实目前只提供了一个nginx的命令),然后将该命令连接到全局的sbin目录下
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
三、Nginx命令
1、基础命令
命令描述 | 命令 | 样例 | 备注 |
查看命令选项 | nginx -h | ./nginx -h | |
查看nginx版本 | nginx -v/-V | ./nginx -v | -v只显示版本信息,-V会显示更多的版本信息,例如gcc版本,OpenSSL的版本等 |
测试配置文件 | nginx -t/-T/-tq | ./nginx -t |
-t显示测试配置文件是否正确,默认只测试默认的配置文件,conf/nginx.conf,-T测试配置文件是否正确,并显示配置文件内容,- tq在测试配置文件过程中,禁止显示非错误信息,也就是只显示错误信息 |
启动nginx | nginx (-c file) | ./nginx -c /usr/local/nginx/conf/nginx.conf | 可以直接使用./nginx进行启动,这样走的是默认的配置文件,也可以使用./nginx -c file 的形式来指定配置文件 |
停止nginx | nginx -s stop/quit | ./nginx -s stop | stop是强制停止nginx,无论当前工作进程是否正在处理工作;quit是优雅停止nginx,使当前的工作进程完成当前工作后停止。 |
平滑重启命令 | nginx -s reload | ./nginx -s reload | 在不重启nginx的前提下,重新加载nginx配置文件 |
重新打开日志文件 | nginx -s reopen | ./nginx -s reopen | |
指定nginx配置文件存放的路径 | nginx -p | ||
设置配置文件外的全局指令 | nginx -g |
2、页面测试
关闭防火墙(单独的服务器需要,如果使用的是阿里云,只需要配置开放80端口的安全组即可)
service iptables stop
访问nginx,由于nginx使用的是80端口,那么就可以直接使用ip访问即可。
四、部分异常解决方案
在上述安装过程中,部分异常信息解决方案
出现错误的命令 | 错误现象 | 原因分析 | 解决方案 |
make && make install | 提示没有makefile | 需要先创建makefile,创建命令上面已存在 | |
./nginx -t | [emerg] getpwnam("nginx") failed | 由于安装时使用的是root用户,其权限太大,因此在创建mkfile时使用了--user=nginx --group=nginx为nginx用户创建了权限,但是我们并没有安装nginx用户 | 添加用户:useradd -s /sbin/nologin -M nginx |
-----------------------------------------------------------
---------------------------------------------
朦胧的夜 留笔~~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律