Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由俄罗斯程序员[伊戈尔·赛索耶夫]开发并于2004年首次公开发布。2011年成立同名公司以提供支持服务。2019年3月11日,Nginx公司被F5网络公司以6.7亿美元收购。
Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx,通常作为负载均衡器。
可大量并行处理
Nginx在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行连接。
与Apache相比
Nginx的编写有一个明确目标就是超越Apache Web服务器的性能。Nginx提供开箱即用的静态文件,使用的内存比Apache少得多,每秒可以处理大约四倍于Apache的请求。 在低并发下Nginx的性能与Apache相当(有时候还低于),但是在高并发下Nginx能保持低资源低消耗高性能。Nginx的优点还包括:高度模块化的设计,模块编写简单,以及配置文件简洁。
这种性能提升的代价是降低了灵活性,例如能够以每个文件为基础覆盖系统范围的访问设置(Apache使用.htaccess文件来完成这个工作,而Nginx并没有内置这样的功能)。以前,向Nginx添加第三方模块需要使用静态链接的模块从源代码重新编译应用程序。在版本 1.9.11 中部分地克服了这一点,增加了动态模块加载。但是,模块仍然必须与Nginx同时编译,而不是所有的模块都与这个系统兼容——有些需要更老的静态链接过程。
相比起在Linux下的Nginx,在Windows Server下的Nginx的稳定性较差,而Apache对两者都有较好的支持。
yum -y --noplugins install wget zip
yum -y --noplugins install unzip
yum -y --noplugins install gcc
yum -y --noplugins install make
yum install gcc-c++
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,pcre-devel是使用pcre开发的一个二次开发库。
yum install -y pcre pcre-devel
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
链接:https://pan.baidu.com/s/1_kPDQTV3lXCKYdus1UI02A?pwd=uz65
提取码:uz65
也可以去官网下载 https://nginx.org/en/
选择stable版本,nginx-1.22.1
cd /usr/local
上传 nginx-1.22.1.tar.gz
解压
tar -zxvf nginx-1.22.1.tar.gz
进入目录查看配置选项含义
`cd nginx-1.22.1`
`./configure --help`
这里选择如下配置:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module
创建临时目录
mkdir -p /var/temp/nginx
在nginx-1.22.1目录下,执行make
make
在nginx-1.22.1目录下,执行make install
make install
进入安装目录查看:
ll /usr/local/nginx
其中html是里面首页html文件。conf里面是配置文件。sbin里面只执行文件。
进入sbin,执行命令:./nginx
`cd /usr/local/nginx/sbin`
`./nginx`
查看nginx是否启动
ps -aux | grep nginx
编辑/etc/profile:
vim /etc/profile
在原有的PATH
后面添加nginx的路径(:/usr/local/nginx/sbin)
export PATH=$PATH:/usr/local/nginx/sbin
生效文件
source /etc/profile
修改PID位置
vim /usr/local/nginx/conf/nginx.conf
按i
进入编辑模式取消注释#
修改如下:
pid logs/nginx.pid;
退出编辑模式ESC
,保存配置文件的修改:wq
创建PID目录和文件
mkdir -p /usr/local/nginx/logs
touch /usr/local/nginx/logs/nginx.pid
执行命令:
vim /usr/lib/systemd/system/nginx.service
输入内容:
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
退出编辑模式ESC
,输入:wq
保存开机自启动脚本。
systemctl enable nginx
systemctl daemon-reload
systemctl start nginx
重启测试
reboot
重新链接后使用命令ps -ef | grep nginx
查看是否启动进程
打开地址
http://[IP]:80 如果打开不了,请关闭防火墙试试:
systemctl status firewalld.service
回车键。systemctl stop firewalld.service
命令,关闭防火墙。systemctl status firewalld.service
,出现disavtive(dead),说明防火墙已经关闭。systemctl disable firewalld.service
,永久关闭防火墙。参考
1.Nginx-维基百科
2.nginx安装