Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务

网友投稿 226 2022-09-24

Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务

一、什么是 Nginx?

​​Nginx​​​是一个高性能的​​HTTP​​​和反向代理​​Web​​​服务器,也提供了​​IMAP / POP3 / SMTP​​​服务,由伊戈尔·赛索耶夫为俄罗斯访问量第二的​​Rambler.ru​​​站点而开发,第一个公开版本​​0.1.0​​​发布于​​2004年10月4日​​​,特点是占有内存少,并发能力强,专为性能优化而开发,稳定性和低系统资源消耗,以及对​​HTTP​​​并发连接的高处理能力,可支持单台高达​​50000​​个并发连接数。

那么,在事实上​​Nginx​​​的并发能力在同类型的网页服务器中表现较好,实际环境中,如果我们采用​​Nginx​​​的话,可能是如下该场景的架构图。其实,在如下这种架构图中,​​Nginx​​​服务器你可以直接理解为是一台​​负载均衡服务器​​​或者​​反向代理服务器​​​,所以当​​客户端​​​发出请求到​​Nginx服务器​​​时,​​Nginx服务器​​​需将它配置好的规则由​​客户端​​​发来的请求并转发到后端的​​LAMP​​​、​​Tomcat​​​、​​LNMP​​上。

二、为什么要用 Nginx?

作为 Web 服务器

相比 Apache,Nginx 使用资源更少,支持更多的并发连接数。在高并发的情况下,Nginx 是 Apache 服务器的替代品,Nginx 作为负载均衡服务器,内部是支持​​Rails​​​和​​PHP​​​程序对外服务,也支持作为​​HTTP代理服务器​​​对外服务,采用​​C语言​​​编写,无论在系统资源开销还是​​CPU​​​使用效率要比​​Perlbal​​好很多。

Nginx 配置简单,Apache 复杂

Nginx 启动容易,几乎可以做到​​7*24​​小时不间断运行,即便很长时间未重新启动,也能够在不间断服务的情况下对软件版本进行升级,静态处理性能要比 Apache 高 3倍以上,Nginx 需要配合其他后端来进行使用,而 Apache 对 PHP 支持较简单,组件同时也比 Nginx 多。

核心点

Nginx 是异步的,多连接可对应一个进程; Apache 是同步多进程模型,一个连接对应一个进程;

擅长领域

Nginx 适用于前端处理静态请求; Apache 适用于后端处理动态请求;

三、Nginx 安装

安装支持软件

Nginx 的配置及运行需要​​pcre​​​、​​zlib​​软件包的支持,需先安装这些软件的开发包供相应的库和头文件,以此来确保 Nginx 的顺利安装。

# yum -y install pcre-devel zlib-devel

创建运行用户、组

Nginx 服务程序默认以​​noboby​​身份运行,这里建议大家创建新的用户账号,更准确的控制访问权限、增加灵活性、降低安全风险;

# useradd -M -s /sbin/nologin nginx

下载编译安装

配置 Nginx 的编译选项时,将安装目录设为​​/usr/local/nginx​​​,运行用户和组均设为​​nginx​​​;启用​​wget tar zxf nginx-1.17.0.tar.gz# cd nginx-1.17.0# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-make && make install

为主程序 Nginx 创建链接文件

# ln -s /usr/local/sbin/nginx /usr/local/sbin/# ls -l /usr/local/sbin/nginxlrwxrwxrwx. 1 root root 21 6月 4 07:31 /usr/local/sbin/nginx -> /usr/local/sbin/nginx

安装好之后,进入默认安装路径到​​sbin​​​目录下,执行​​nginx​​即可启动;

# cd /usr/local/nginx/sbin/# pwd/usr/local/nginx/sbin# ./nginx # nginx

监听 Nginx 程序的状态

# netstat -anpt | grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 53816/nginx

监听到端口后,在浏览器中直接访问​​Nginx​​​    地址,当浏览器看到如下页面时,说明​​Nginx​​已经安装成功了。

使用 Nginx 服务脚本

可编写​​Nginx​​​服务脚本,使用​​chkconfig​​​和​​service​​工具进行统一管理;

#!/bin/bash# chkconfig: 2345 99 20# description: Nginx Server Control Scripts shellPROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case "$1" in start) if [ -f $PIDF ]; then echo "Nginx is running.. Start it is error" else $PROG fi ;; stop) if [ -f $PIDF ]; then kill -s QUIT $(cat $PIDF) rm -rf $PIDF else echo "Nginx is stopping .. Stop it is error" fi ;; restart) $0 stop $0 start ;; reload) if [ -f $PIDF ]; then kill -s HUP $(cat $PIDF) else echo "Nginx is stopping . reload it is error" fi ;; status) if [ -f $PIDF ]; then echo "Nginx is running" else echo "Nginx is stopping" fi ;; *) echo "Usage: $0 (start|stop|restart|reload|status)" exit 1esacexit 0# chmod +x /etc/init.d/nginx# chkconfig --add nginx

如果修改了​​Nginx​​​的配置文件,可通过​​./nginx -s reload​​​命令加载​​Nginx​​配置文件。

# ./nginx -s reload

总结

以上我们介绍了​​Nginx​​​的基本概念、为什么要用​​Nginx​​​、Nginx 的安装有个初步的认识,待后续的文章继续介绍​​正向代理​​​、​​反向代理​​​、​​负载均衡​​​以及​​构建 LNMP 架构​​等;今天我们就介绍到这里,有问题大家随时留言讨论哦。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:VsCode:Vue单文件格式化属性换行显示
下一篇:福布斯中国富豪榜:暂缓IPO前马云再当首富,10位蚂蚁股东上榜!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~