一、前言
1.什么是nginx?
Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务。
2.nginx可以用来做什么?
它的主要作用和功能包括:
1)Web服务器:相比Apache,Nginx使用更少的资源,支持更多的并发连接,展现出更高的效率。这使得Nginx特别受虚拟主机提供商的欢迎。Nginx能够支持高达50,000个并发连接数的响应,这得益于它选择的epoll和kqueue作为开发模型。
2)负载均衡服务器:Nginx可以在内部直接支持Rails和PHP,也可以作为HTTP代理服务器对外提供服务。Nginx用C编写,无论是系统资源开销还是CPU使用效率,都比Perlbal要好得多。
3)邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器。
4)反向代理与正向代理:Nginx在反向代理上提供灵活的功能,可以根据不同的正则采用不同的转发策略。同时,它也可以作为正向代理,即代理用户去访问服务器,这需要用户手动设置代理服务器的IP和端口号。
5)负载均衡:在高并发情况下,Nginx通过负载均衡将数据流量分摊到多个服务器执行,以减轻每台服务器的压力,提高数据的吞吐量。
6)静态代理:Nginx擅长处理静态文件,是非常好的图片、文件服务器。将所有的静态资源放到Nginx上,可以使应用实现动静分离,从而提高性能。
二、安装步骤:
1.建立新的用户组
为了让nginx是以用户身份进行管理,保证安全的情况下使用。
1)以管理员的身份登录,为了防止之后操作出现文件无法更改或操作无法进行的权限阻碍。
2)建立名字为nginx的用户组。
groupadd nginx #建立用户组
groupadd nginx #建立用户组
3)添加新的成员进入用户组,禁止新用户配置主目录
useradd -s /sbin/nologin -g nginx -M nginx #添加新成员
useradd -s /sbin/nologin -g nginx -M nginx #添加新成员
2.在官网下载所需要的nginx版本(本文使用nginx-1.25.4版)
1)官网下载
2)上传至Red Hat 虚拟机上
*由于上传时会直接上传至家目录中,我们需要将压缩包移动到根目录下(/root),为了之后安装更为顺利和不出错。
mv /home/xxx/nginx-1.25.4.tar.gz /root #mv命令移动文件或目录位置,此处的xxx为用户名
mv /home/xxx/nginx-1.25.4.tar.gz /root #mv命令移动文件或目录位置,此处的xxx为用户名
3.解压缩nginx压缩包
1)解压缩
tar zvxf nginx-1.25.4.tar.gz #解压缩
tar zvxf nginx-1.25.4.tar.gz #解压缩
压缩包解压缩后会自动生成一个nginx-1.25.4的目录,里面包含解压后的配置文件
2)进入目录
cd nginx-1.25.4/ #进入目录
cd nginx-1.25.4/ #进入目录
4.配置源代码编译环境
1)安装编译环境
yum install gcc gcc-c++ #c语言环境,nginx是用c语言编译的服务
yum install gcc gcc-c++ #c语言环境,nginx是用c语言编译的服务
2)安装pcre软件包
yum install pcre-devel #使nginx支持http rewrite模块
yum install pcre-devel #使nginx支持http rewrite模块
3)安装openssl-devel
yum install openssl-devel #使nginx支持ssl
yum install openssl-devel #使nginx支持ssl
4)安装zlib
yum install -y zlib zlib-devel
yum install -y zlib zlib-devel
5.进行脚本编译
执行configure脚本生成编译配置文件Makefile。
命令脚本:
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
*** --usr=nginx为指定运行权限的用户
--group=nginx指定运行权限的用户组
--prefix=/usr/local/nginx为指定安装路径
--with-http_stub_status_module表示支持nginx状态查询
--with-http_ssl_module表示启用SSL支持
--with-http_gzip_static_module表示启用GZIP功能
配置成功后,会出现以下画面:
6.进行源代码编译
1)make命令
make编译源代码
make
2)make install 命令
执行make install 安装软件
make install
至此,完成nginx编译安装。
7.登录nginx
1)关闭防火墙
systemctl stop firewalld
systemctl stop firewalld
2)登录nginx界面
在浏览器上输入Red Hat虚拟机配置固定静态ip地址。
nginx安装完成。
三、*编写systemd单元文件管理nginx服务(选做)
1.编写配置文件
vi /usr/lib/systemd/system/nginx.service
vi /usr/lib/systemd/system/nginx.service
配置文件:
[Unit]
Description=nginx service
[Service]
ExecStart=/usr/local/ngix/sbin/nginx
ExecReload=/usr/lcoal/ngix/sbin/nginx -s reload
ExecStop=/usr/local/ngix/sbin/nginx -s quit
PrivateTmp=True
Type=forking
[Install]
WantedBy=multi-user.target
[Unit]
Description=nginx service
[Service]
ExecStart=/usr/local/ngix/sbin/nginx
ExecReload=/usr/lcoal/ngix/sbin/nginx -s reload
ExecStop=/usr/local/ngix/sbin/nginx -s quit
PrivateTmp=True
Type=forking
[Install]
WantedBy=multi-user.target
Esc+wq!保存退出。
2.执行文件
1)systemctl daemon-reload #执行启动
systemctl daemon-reload
2)systemctl stop nginx.service #停止nginx服务
systemctl start nginx.service #开始nginx服务
systemctl enable nginx.service #开机自动开启nginx服务
systemctl stop nginx.service #停止nginx服务
systemctl start nginx.service #开始nginx服务
systemctl enable nginx.service #开机自动开启nginx服务
文件配置完成。
四、总结
1.注意文件配置路径,一旦路径配置有偏差,可能会出现nginx无法配置好的情况。
2.当无法登录nginx界面时,检查两个方面:一方面,防火墙是否关闭;另一方面,是否能在/sbin目录下查找到nginx,若无法找到,则配置中出现问题。
3.只有脚本配置好后才可以使用make&make install 命令,否则无法报错。
4.多进行尝试,在没把握的情况下,可以保存快照。
附录
本文参考:资料《Centos Linux》系统管理与运维第2版(张金石 钟小平主编、崔社平 杨瑾 姚俊副主编),特此感谢。