Nginux网站基础服务

案头见蠹鱼,犹胜凡俦侣。这篇文章主要讲述Nginux网站基础服务相关的知识,希望能为你提供帮助。
nginx网站服务 Nginx概述:
一款高性能,轻量级的web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接处理能力高
单台物理服务器可以支持30000~50000个并发请求
Nginx相对于Apache的优点:
轻星级,同样是web服务,比Apache 占用更少的内存及资源; 高并发,Nginx 处理请求是异步非塞的,而Apache 则是阻塞型的,在高并发下Nginx能保持低资源低消耗高性能; 高度模块化的设计
编写模块相对简单; 社区活跃,各种高性能模块出品迅速。
Apache相对于Nginx的优点:
rewrite,比Nginx 的rewrite强大; 模块超多,基本想到的都可以找到; 少bug , Nginx 的bug相对较多; 超稳定存在就是理由,- -般来说,需要性能的web服务,用Nginx。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,- 般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。
Nginx和Apache的差异
Nginx是一个甚于事件的Web服务器,Apache是一个基于流程的服务器;
Nginx所有请求都由一个线程处理,Apache单个线程处理单个请求;
Nginx避免子进程的概念,Apache是基于子进程的;
Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般;
Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件;
Nginx支持热部署,Apache不支持热部署;
Nginx对于静态文件处理具有更高效率, Apache相对一般;
Nginx在反向代理场景具有明显优势,Apache相对一般。
安装Ngiux
1、首先关闭防火墙、啥的

Nginux网站基础服务

文章图片

2、把安装包用winscp移动到opt
3、yum本地安装相应的依赖包
```html/xml
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
![2安装所需软件包.png](https://s2.51cto.com/images/20220108/1641613982406371.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) 4、创建Nginux的程序用户5、编译安装Nginuxcd /opttar zxvf nginx-1.12.2.tar.gz -C /opt/cd nginx-1.12.2/ ![4、解压完成后我们进入安装包.png](https://s2.51cto.com/images/20220108/1641614126370853.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)![4、挑转到opt目录,解压这个文件.png](https://s2.51cto.com/images/20220108/1641614133540728.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)![5进行编译.png](https://s2.51cto.com/images/20220108/1641614184995345.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

./configure \\
--prefix=/usr/local/nginx \\
--user=nginx \\
--group=nginx \\
--with-http_stub_status_module
4核心编译安装 make -j 4 & & make install ![54核心编译安装.png](https://s2.51cto.com/images/20220108/1641614165753658.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) 然后我们创建程序用户nginx ![3、创建程序用户.png](https://s2.51cto.com/images/20220108/1641614107405443.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)6、制作软连接,让系统识别Nginx的指令ln -s /usr/local/nginx/sbin/nginx/usr/local/sbin/ ![6 制作系统识别的软连接来识别指令.png](https://s2.51cto.com/images/20220108/1641614209551346.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)7、nginx日常操作nginx -t#检查是否配置完毕 ![6、检查是否安装完毕.png](https://s2.51cto.com/images/20220108/1641614241495712.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) nginx#启动nginx如何停止nginx

首先去文件查看进程号
cat /usr/local/nginx/logs/nginx.pid
然后我们使用:
kill -3 PID号
#-3 是等待进程结束后杀死进程,防止数据丢失
或者
kill -s QUIT nginx
如何重载nginx

kill -1 nginx
#-1是重载操作
日志分割、重新打开日志文件与平滑升级 ![补充:如何新版本升级(建议平滑升级).png](https://s2.51cto.com/images/20220108/1641614360361329.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

kill -USR1 < PID号> #日志分割、重新打开日志
kill -USR2 < PID号> #平滑升级
8、添加nginx系统服务首先是cd /etc/init.d/然后是vim nginx 输入以下shell代码```shell #!/bin/bash #chkconfig: 35 99 21 #desc: this is used for control nginx service COM="/usr/local/nginx/sbin/nginx" PID="/usr/local/nginx/logs/nginx.pid"case $1 in start) $COM ; ; stop) kill -3 `cat $PID` ; ; restart) $0 stop $0 start ; ; reload) kill -s HUP `cat $PID` ; ; status) tmp=`ps -ef | grep nginx | egrep -cv "grep|$$"` if [ "$tmp" -le 1 ]; then echo "Nginx 服务未启动" else echo "Nginx 服务已启动" fi ; ; *) echo "Usage: $0 start|stop|restart|status|reload" exit 1 esac exit 0

Nginux网站基础服务

文章图片

Nginux网站基础服务

文章图片

chmod +x /etc/init.d/nginx
chkconfig --add nginx
systemctl stop nginx
systemctl start nginx
认识nginx服务的主配置文件1、全局块:配置影响nginx全局的指令。一 般有运行nginx服务器的用户组,nginx进程pid存放路径, 日志存放路径,配置文件引入,允许生成worker process数等。
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3、http块: 可以嵌套多个server, 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime- type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4、server块: 配置虚拟主机的相关参数,一个http中可以有多个server.
5、location块: 配置请求的路由,以及各种页面的处理情况。
vim /usr/local/nginx/conf/nginx.conf
1、全局配置
#user nobody; #运行用户,若编译时未指定则默认为nobody worker_ processes 1; #工作进程数量,可配置成服务器内核数* 2,如果网站访问量不大,- -般设为1就够用了 #error_ log logs/error.log; #错误日志文件的位置 #pid logs/nginx.pid; #PID文件的位置,

2、I/0 事件配置
events use epoll; #使用epoll 模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能 worker_ connections 4096; #每个进程处理4096 个连接 }

#如提高每个进程的连接数还需执行“ulimit-n65535”命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单--进程同时可打开文件数量的限制(这是因为系统
为每个TCP连接都要创建一个socket句柄, 每个socket句柄同时也是一一个文件句柄)。
#可使用ulimit-a命令查看系统允许当前用户进程打开的文件数限制。
#epoll是Linux内核为处理大批句柄而作改进的poll,是Linux 下多路复用I0接口select/pol1的增强版本,它能显著的减少程序在大量并发
连接中只有少量活跃的情况下的系统CPU利用率。
3.HTTP配置
http ##文件扩展名与文件类型映射表 includemime. types; ##默认文件类型 ##日志格式设定 #log_ format main$remote_ _addr - $remote_ user [$time_ local] "Srequest" #. $status $body_ bytes_ sent "$http_ referer" #"$http_ user_ agent" "$http_ x_ forwarded for"; ##访问日志位置 #access_ 1og logs/access.1og main; ##支持文件发送(下载) sendfileon; ##此选项允许或禁止使用socket的TCP__CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用 #tcp_ nopushon; ##连接保持超时时间,单位是秒 #keepalive_ t imeout0; keepalive_ timeout 65; ##gzip模块设置,设置是否开启gzip压缩输出 #gzip on; ##Web服务的监听配置 server ##监听地址及端口 listen 80; ##站点域名,可以有多个,用空格隔开 server_ name www. kgc. com; ##网页的默认字符集 charset utf-8; ##根目录配置 location / ##网站根目录的位置/usr/local/nginx/html root html; ##默认首页文件名 index index .html index . php; ##内部错误的反馈页面 error_ page 500 502 503 504 /50x. html; ##错误页面配置 location = /50x.html root html;

日志格式设定:
$remotel addr 与$http_ _x_ forwarded_ for用 以记录客户端的ip地址; $remote_ _user:用来记录客户端用户名称; $time_local:用来记录访问时间与时区; $ request: 用来记录请求的url与http协议; $status:用 来记录请求状态:成功是200, $body_ bytes_ sent :记录发送给客户端文件主体内容大小: $http_referer:用来记录从哪个页面链接访问过来的: $http_ _user_ agent: 记录客户浏览器的相关信息; 通常web服务器放在反向代理的后而,这样就不能获取到客户的IP地址了,通过$remote__add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_ forwarded_ for信 息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址

location常见配置指令,root、 alias、proxy_ _pass
root ( 根路径配置) : root /var/www/html 请求www. kgc . com/test/1.html,会返回文件/var/www/html/ test/1. htmlalias (别名配置) : alias /var/www/html 请求www. kgc . com/test/1.html,会返回文件/var/www/html/1. html

访问状态统计配置
1.先使用命令/usr/local/nginx/sbin/nginx -V查看已安装的Nginx 是否包含,HTTP STUB STATUS模块
cat /opt/nginx-1.12.2/auto/options I grep YES#可查看nginx已安装的所有模块

Nginux网站基础服务

文章图片

2.修改nginx.conf 配置文件,指定访问位置并添加stub_ status 配置
Nginux网站基础服务

文章图片

Nginux网站基础服务

文章图片

ln -s /usr/local/nginx/conf/nginx.conf/etc#做软连接方便修改 vim /etc/nginx.conf 如下文代码更改(模板)location /status stub_status on; access_log off; curl -Ls http://192.168.206.10/status #完成验证统计

【Nginux网站基础服务】
Nginux网站基础服务

文章图片

Nginux网站基础服务

文章图片

Nginux网站基础服务

文章图片

基于授权登录的访问控制
1.生成用户密码认证文件
yum install -y httpd- tools
htpasswd -C /usr/local/nginx/passwd. db zhangsan
chown nginx /usr/ local/nginx/passwd . db
chmod 400 /usr/local/nginx/passwd. db
2.修改主配置文件相对应目录,添加认证配置项
Nginux网站基础服务

文章图片

3.重启服务,访问测试
nginx -t
systemctl restart nginx
然后登陆即可

    推荐阅读