作者:JackTian
首发于微信公众号:杰哥的IT之旅(ID:Jake_Internet)
链接:Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务
01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务
02. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点?
03. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制
04. LAMP 系列教程(四)| MySQL 数据库系统(一)
05. LAMP 系列教程(五)| MySQL 数据库系统(二)- SQL语句的基本操作
06. LAMP 系列教程(六)| MySQL 数据库系统(三)- 数据库的用户授权
07. LAMP 系列教程(七)| MySQL 数据库系统(四)- 数据库的备份与恢复
08. LAMP 系列教程(八)| 带你轻松玩转 LAMP 网站架构平台(一)
09. LAMP 系列教程(九)| LAMP 架构应用案例 - 部署 PHPMyAdmin 系统(二)
Nginx
是一个高性能的HTTP
和反向代理Web
服务器,也提供了IMAP / POP3 / SMTP
服务,由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru
站点而开发,第一个公开版本0.1.0
发布于2004年10月4日
,特点是占有内存少,并发能力强,专为性能优化而开发,稳定性和低系统资源消耗,以及对HTTP
并发连接的高处理能力,可支持单台高达50000
个并发连接数。
那么,在事实上Nginx
的并发能力在同类型的网页服务器中表现较好,实际环境中,如果我们采用Nginx
的话,可能是如下该场景的架构图。其实,在如下这种架构图中,Nginx
服务器你可以直接理解为是一台负载均衡服务器
或者反向代理服务器
,所以当客户端
发出请求到Nginx服务器
时,Nginx服务器
需将它配置好的规则由客户端
发来的请求并转发到后端的LAMP
、Tomcat
、LNMP
上。
相比 Apache,Nginx 使用资源更少,支持更多的并发连接数。在高并发的情况下,Nginx 是 Apache 服务器的替代品,Nginx 作为负载均衡服务器,内部是支持Rails
和PHP
程序对外服务,也支持作为HTTP代理服务器
对外服务,采用C语言
编写,无论在系统资源开销还是CPU
使用效率要比Perlbal
好很多。
Nginx 启动容易,几乎可以做到7*24
小时不间断运行,即便很长时间未重新启动,也能够在不间断服务的情况下对软件版本进行升级,静态处理性能要比 Apache 高 3倍以上,Nginx 需要配合其他后端来进行使用,而 Apache 对 PHP 支持较简单,组件同时也比 Nginx 多。
Nginx 是异步的,多连接可对应一个进程;
Apache 是同步多进程模型,一个连接对应一个进程;
Nginx 适用于前端处理静态请求;
Apache 适用于后端处理动态请求;
安装支持软件
Nginx 的配置及运行需要pcre
、zlib
软件包的支持,需先安装这些软件的开发包供相应的库和头文件,以此来确保 Nginx 的顺利安装。
# yum -y install pcre-devel zlib-devel
创建运行用户、组
Nginx 服务程序默认以noboby
身份运行,这里建议大家创建新的用户账号,更准确的控制访问权限、增加灵活性、降低安全风险;
# useradd -M -s /sbin/nologin nginx
下载编译安装
配置 Nginx 的编译选项时,将安装目录设为/usr/local/nginx
,运行用户和组均设为nginx
;启用http_stub_status_module
模块以支持状态统计,便于查看服务器的连接信息。
# wget http://nginx.org/download/nginx-1.17.0.tar.gz
# tar zxf nginx-1.17.0.tar.gz
# cd nginx-1.17.0
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
# make && make install
为主程序 Nginx 创建链接文件
# ln -s /usr/local/sbin/nginx /usr/local/sbin/
# ls -l /usr/local/sbin/nginx
lrwxrwxrwx. 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 nginx
tcp 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 shell
PROG="/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 1
esac
exit 0
# chmod +x /etc/init.d/nginx
# chkconfig --add nginx
如果修改了Nginx
的配置文件,可通过./nginx -s reload
命令加载Nginx
配置文件。
# ./nginx -s reload
扫描下方二维码,添加杰哥微信,备注:地区/城市-职业方向/学校-昵称
,即可加入杰哥的IT之旅读者群
,群内仅供学习交流、日常互动、资源分享、经验分享等,一定要记得备注,我会尽快通过好友验证的。
1、GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
2、GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
3、没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中文趋势榜第一!
4、RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
5、Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
6、为什么要学习 Markdown?究竟有什么用?
7、万字长文带你了解最常用的开源 Squid 代理服务器
8、一款常用的 Squid 日志分析工具
今天的推荐不知道大家喜欢吗?如果你喜欢,请在文章底部留言和点赞,以表示对我的支持,你们的留言
和点赞
是我持续更新的动力哦,感谢大家!
1、点个赞,让更多的人看到这篇文章,顺便激励下我,嘻嘻。
2、关注我的原创微信公众号「杰哥的IT之旅」
,专注于IT技术干货文章,以及不定期的分享学习资料,实用工具,面试经验
等,当然了还有内推机会
哦,期待你的关注!