Nginx服务(2)——nginx源码安装及性能优化

实验环境

主机名ip服务
server1172.25.1.1nginx

一、Nginx源码安装

步骤一:在官网上下载nginx安装包并解压
下载地址:nginx官网安装包下载
在这里插入图片描述
步骤二:认识nginx目录中的文件
在这里插入图片描述

1)auto目录:里面有4个子目录,cc是编译使用的,os是判断操作系统类型的,其他都是辅助configure编译的,也就是操作系统有什么特性供nginx使用
2)CHANGES:各版本的改变,bug修复等信息
  CHANGES.ru:nginx作者是俄罗斯人,这是俄罗斯版本
3)conf: 为了方便运维配置,conf目录里有示例文件,安装好后会拷贝到安装目录
4)configure:编译
5)contrib:提供nginx语法检测字体
   cp -r contrib/vim/* ~/.vim #家目录下如果没有.vim目录,手动新建
6)html:默认发布目录,50x.html是报500错误时的页面
7) src:源码目录
8) 编译完成后会生成一个中间目录objs,里面有个ngx_modules.c,表示编译进nginx的模块,可以打开看一下
9)make完成后再看objs目录,又有新文件

步骤三:修改配置文件 /nginx-1.17.8/src/core/nginx.h

vim  nginx-1.17.8/src/core/nginx.h

#define NGINX_VER          "nginx/" NGINX_VERSION
改为:
#define NGINX_VER          "nginx/"	 

在这里插入图片描述
步骤四:修改源码编译gcc配置文件

在此Debug模式模式会插入许多追踪和ASSERT之类的信息,在正常编译过程中结束,会产生几兆大小的包,我们可以在编译之前关闭debug模式,这样在编译结束,只会产生几百K左右的包大小。

vim auto/cc/gcc

# debug
#CFLAGS="$CFLAGS -g" ##本行注释掉,关闭debug日志模式  

在这里插入图片描述
步骤五:安装编译环境

yum install gcc openssl-devel -y

在这里插入图片描述在这里插入图片描述

步骤六:编译

./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

在这里插入图片描述
注意这里的参数说明:

--prefix=PATH 
	## 指定nginx的安装目录。默认 /usr/local/nginx
--with-http_realip_module 
	##通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如X-Real-IP 或 X-Forwarded-For)
	##意义在于能够使得后台服务器记录原始客户端的IP地址
--with-http_ssl_module 
	##使用https协议模块。默认情况下,该模块没有被构建。前提是openssl与openssl-devel已安装
--without-http_rewrite_module 
	##perl正则表达式使用在location指令和ngx_http_rewrite_module模块中。

步骤七:编译安装

make && make install 

在这里插入图片描述
步骤八:启动脚本做软链接

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

在这里插入图片描述
步骤九:修改配置文件,设置nginx为所有人所有组,并进行语法检测

vim /usr/local/nginx/conf/nginx.conf
user  nginx nginx;

在这里插入图片描述
检查语法文件

nginx -t 

在这里插入图片描述
此是报如下错误:
nginx: [emerg] getpwnam(“nginx”) failed in /usr/local/nginx/conf/nginx.conf:2
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
是因为没有建立用户nginx

解决:

useradd nginx #建立用户
nginx -t  #语法检测

在这里插入图片描述
此时报错:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: [emerg] mkdir() “/var/temp/nginx/client” failed (2: No such file or directory)
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed

提示没有找到目录/var/temp/nginx/client

解决:

mkdir -p /var/temp/nginx/client
nginx -t

在这里插入图片描述
步骤十:开启nginx服务,查看进程

nginx
ps aux

在这里插入图片描述在这里插入图片描述

二、nginx性能优化

升级nginx的配置,调整开启的work进程数是由cpu的总核心数决定的(有几核就有几个work进程)

步骤一:关闭虚拟机,修改虚拟机cpu核心数,增加为最大核数4核
在这里插入图片描述
在这里插入图片描述
步骤二:开启虚拟机,查看逻辑CPU的个数

cat /proc/cpuinfo | grep "processor" | wc -l 

在这里插入图片描述
步骤三:在nginx配置文件中修改nginx开启的worker进程数

vim /usr/local/nginx/conf/nginx.conf

worker_processes  4;
worker_cpu_affinity 0001 0010 0100 1000;

在这里插入图片描述

  • nginx默认没有开启利用多核cpu,这样配置后,在计算最费时的资源时,使用的cpu核数越多,越快,'0001’从左到右一次表示第四,第三,第二,第一个cpu核心,0表示关闭,1表示开启

步骤四:重启nginx
在这里插入图片描述
重启虚拟机后,再次重启nginx会报错:
nginx: [emerg] open() “/var/run/nginx/nginx.pid” failed (2: No such file or directory)

解决办法:
1)进入 cd /usr/local/nginx/conf/ 目录,编辑配置文件nginx.conf ;
2)在配置文件中有个注释的地方: #pid logs/nginx.pid;
3)将注释放开,并修改为:pid /usr/local/nginx/logs/nginx.pid;
4)在 /usr/local/nginx 目录下创建 logs 目录:mkdir /usr/local/nginx/logs
在这里插入图片描述
在这里插入图片描述
步骤五:nginx重启后,查看进程数

ps ax

在这里插入图片描述
步骤六:修改系统最大打开文件数为65536
进程的最大连接数受 Linux 系统进程的最大打开文件数限制,只有执行了 “ulimit -HSn 65535” 之后,worker_connections 才能生效

ulimit -a   #查看最大打开文件数,发现只有1024
ulimit -HSn 65536   #修改系统最大打开文件数为65536

在这里插入图片描述
步骤七:修改并发连接数为系统最大打开文件数,并且重启nginx

vim /usr/local/nginx/conf/nginx.conf

13 events {
 14     worker_connections  65536;
 15     use epoll;
 16 }

nginx -s reload

在这里插入图片描述
在这里插入图片描述
步骤七:查看进程允许的最大并发数

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值