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

>作者:JackTian 来源:公众号「杰哥的IT之旅」 ID:Jake_Internet 原文链接:[Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务](https://mp.weixin.qq.com/s?__biz=MzAwMjg1NjY3Nw==&mid=2247488784&idx=2&sn=03646237396703c418d4f262ced56041&scene=21#wechat_redirect) 转载请联系授权(微信ID:Hc220088) #### 一、什么是 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`上。 ![图片](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c0f7f666f10e44f3a406ddab8b2ddc13~tplv-k3u1fbpfcp-zoom-1.image) #### 二、为什么要用 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`;启用`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`已经安装成功了。 ![图片](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7a6f69a15dbf40fe8127f2d2bcd4000e~tplv-k3u1fbpfcp-zoom-1.image "在这里插入图片描述") **使用 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 ``` #### 总结 以上我们介绍了`Nginx`的基本概念、为什么要用`Nginx`、Nginx 的安装有个初步的认识,待后续的文章继续介绍`正向代理`、`反向代理`、`负载均衡`以及`构建 LNMP 架构`等;今天我们就介绍到这里,有问题大家随时留言讨论哦。 **原创不易,如果你觉得这篇文章对你有点用的话,麻烦你为本文点个赞、评论或转发一下,因为这将是我输出更多优质文章的动力,感谢!** ![微信图片_20201129211906.jpg](http://www.icode9.com/i/li/?n=2&i=images/20210621/1624240243790235.jpg?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
上一篇:nginx安装


下一篇:1、 ./sbin/start-yarn.sh时,报错there is no YARN_RESOURCEMANAGER_USER defined