快速搭建Nginx及其基本参数的配置

这篇文章主要介绍了关于 快速搭建nginx及其基本参数的配置,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

Nginx的快速搭建和基本参数

一、Nginx简介

1. Nginx简述

Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。

2. 常见的HTTP服务

httpd – Apache

IIS – 微软

GWE – Google

tomcat – Sun

二、为什么选择Nginx

1. IO多路复用epoll

什么是IO多路复用

多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这就叫I/O多路复用,这里的“复用”指的是复用同一个线程。

什么是epoll

IO多路服用的实现方式:select、poll、epoll

select

基本原理:
select 函数监视的文件描述符分3类,分别是writefds、readfds、和exceptfds。调用后select函数会阻塞,直到有描述符就绪(有数据 可读、可写、或者有except),或者超时(timeout指定等待时间,如果立即返回设为null即可),函数返回。当select函数返回后,可以通过遍历fdset,来找到就绪的描述符。

select缺点:
1.能够监视文件描述符的数量存在最大限制。
2.线性扫描效率低下。

epoll

基本原理:
epoll支持水平触发和边缘触发,最大的特点在于边缘触发,它只告诉进程哪些fd刚刚变为就绪态,并且只会通知一次。还有一个特点是,epoll使用“事件”的就绪通知方式,通过epoll_ctl注册fd,一旦该fd就绪,内核就会采用类似callback的回调机制来激活该fd,epoll_wait便可以收到通知。

epoll的优点:
1.没有最大并发连接的限制,能打开的FD的上限远大于1024(1G的内存上能监听约10万个端口)。
2.效率提升,不是轮询的方式,不会随着FD数目的增加效率下降。
3.内存拷贝,利用mmap()文件映射内存加速与内核空间的消息传递;即epoll使用mmap减少复制开销。

2. 轻量级

功能模块少

代码模块化

3. CPU亲和性(affinity)好

CPU亲和性(affinity)是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在一个CPU上执行,减少CPU的cache miss,获得更好的性能。

4. sendfile

三、Nginx的快速搭建和基本参数(CentOS7)

1. yum方式安装【参考】

创建/etc/yum.repos.d/nginx.repo文件,并输入如下内容

[nginx]name=nginx repobaseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/gpgcheck=0enabled=1

登录后复制

OS 可选值有 centos 和 rhel。
OSRELEASE 为系统版本,例如 6 和 7 分别代表 6.x 和 7.x 的版本。

运行 yum install -y nginx 安装nginx

运行 nginx -v 查看nginx版本

[root~]# nginx -vnginx version: nginx/1.14.0

登录后复制

2. 编译参数详解

查看nginx安装时的编译参数

nginx -V

登录后复制

[root~]# nginx -Vnginx version: nginx/1.14.0built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)built with OpenSSL 1.0.2k-fips  26 Jan 2017TLS SNI support enabledconfigure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

登录后复制

安装编译参数详解【参考】

编译选项 作用

–prefix=/etc/nginx配置文件目录–sbin-path=/usr/sbin/nginx可执行文件名称和所在目录–modules-path=/usr/lib64/nginx/modulesnginx动态模块的安装目录–conf-path=/etc/nginx/nginx.conf主配置文件名称和所在目录–error-log-path=/var/log/nginx/error.log全局错误日志文件名称和所在目录–http-log-path=/var/log/nginx/access.logHTTP服务器的主请求日志文件的名称和所在目录–pid-path=/var/run/nginx.pidnginx.pid所在目录,这是储存主进程的进程ID文件–lock-path=/var/run/nginx.locknginx.lock所在目录–http-client-body-temp-path=/var/cache/nginx/client_temp
–http-proxy-temp-path=/var/cache/nginx/proxy_temp
–http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
–http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
–http-scgi-temp-path=/var/cache/nginx/scgi_temp
执行对应模块时nginx所保留的临时文件–user=nginx
–group=nginx设定Nginx进程启动的用户和用户组–with-http_random_index_module目录中随机选择一个随机主页–with-http_stub_status_moduleNginx客户端状态–with-http_sub_moduleHTTP内容替换–with-cc-opt=设置额外的参数将被添加到CFLAGS变量–with-ld-opt=设置附加参数,链接系统库

3. 安装目录详解

查看nginx所有文件的安装位置

rpm -ql nginx

登录后复制

[root~]# rpm -ql nginx/etc/logrotate.d/nginx/etc/nginx/etc/nginx/nginx.conf/etc/nginx/conf.d/etc/nginx/conf.d/default.conf/etc/nginx/fastcgi_params/etc/nginx/scgi_params/etc/nginx/uwsgi_params/etc/nginx/koi-utf/etc/nginx/koi-win/etc/nginx/win-utf/etc/nginx/mime.types/etc/sysconfig/nginx/etc/sysconfig/nginx-debug/usr/lib/systemd/system/nginx-debug.service/usr/lib/systemd/system/nginx.service/usr/lib64/nginx/usr/lib64/nginx/modules/etc/nginx/modules/usr/sbin/nginx/usr/sbin/nginx-debug/usr/share/doc/nginx-1.14.0/usr/share/doc/nginx-1.14.0/COPYRIGHT/usr/share/man/man8/nginx.8.gz/usr/share/nginx/usr/share/nginx/html/usr/share/nginx/html/50x.html/usr/share/nginx/html/index.html/var/cache/nginx/var/log/nginx/usr/libexec/initscripts/legacy-actions/nginx/usr/libexec/initscripts/legacy-actions/nginx/check-reload/usr/libexec/initscripts/legacy-actions/nginx/upgrade

登录后复制

默认路径 类型 作用

/etc/logrotate.d/nginx配置文件Nginx日志轮转,用于logrotate服务的日志切割/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf目录、配置文件nginx主配置文件/etc/nginx/fastcgi_params
/etc/nginx/uwsig_params
/etc/nginx/scgi_params配置文件cgi配置相关,fastcgi配置/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utf配置文件编码转换映射转化文件/etc/nginx/mime.types配置文件设置http协议的Content-Type与扩展名对应关系/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug配置文件用于配置出系统守护进程管理器管理方式/usr/lib64/nginx/modules
/etc/nginx/mudules目录Nginx模块目录/usr/sbin/nginx
/usr/sbin/nginx-debug命令Nginx服务的启动管理的终端命令/usr/share/doc/nginx-1.14.0
/usr/share/doc/nginx-1.14.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz文件、目录Nginx手册和帮助文件/var/cache/nginx目录Nginx缓存目录/var/log/nginx目录Nginx日志目录

四、Nginx常用命令

命令 解释

nginx [-c ]以指定的配置文件启动nginxnginx -s quit正常停止nginx,Nginx在退出前完成已经接受的连接请求。nginx -s stop快速停止nginx,不管有没有正在处理的请求。nginx -s reload [-c ]重载配置文件nginx -s reopen重新打开日志文件nginx -v查看版本nginx -V查看安装时的编译参数nginx -t [-c ]检查配置文件语法是否正确

nginx -s  reload 命令加载修改后的配置文件,命令下达后发生如下事件

Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)

Nginx启动新的worker进程,采用新的配置文件

Nginx将新的请求分配新的worker进程

Nginx等待以前的worker进程的全部请求都返回后,关闭相关worker进程

重复上面过程,直到全部旧的worker进程都被关闭掉

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

Nginx负载调度器+双Tomcat负载及会话共享+MySQL后端数据库

以上就是快速搭建Nginx及其基本参数的配置的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2605640.html

(0)
上一篇 2025年3月6日 20:06:09
下一篇 2025年3月6日 20:06:18

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • CentOS安装Nginx的方法

    这篇文章主要介绍了关于centos安装nginx的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 这篇文章主要介绍了关于centos安装nginx的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 为了…

    编程技术 2025年3月6日
    100
  • php和Java哪个好?php和Java的对比

    java和php的性能各有优劣,其区别有:1、php和java的语法不同;2、php采用面向过程的开发方法,而java是面向对象的系统设计方法;3、java访问数据库的接口比较统一;4、php开发速度快;5、Java安全性高。 php和Ja…

    2025年3月6日
    200
  • 对于linux的基本操作

    本文记录linux安装mysql过程。 1. touch  创建文件   base   sh 授权脚本执行权限 2. mkdir 创建文件夹3. ./xx.sh 执行sh文件 sh test.sh 4. rpm -qa|grep -i my…

    编程技术 2025年3月6日
    200
  • 如何快速排查无法打开 ECS 实例上运行的网站

    本篇文章给大家带来的内容是关于如何快速排查无法打开 ecs 实例上运行的网站,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 快速排查无法打开 ECS 实例上运行的网站 无法打开 Linux 实例上运行的网站 此处示范系统为…

    编程技术 2025年3月6日
    100
  • Tomcat服务启动非常缓慢的解决方法

    本文在介绍tomcat服务启动非常缓慢的解决方法的基础上,重点探讨了其具体步骤,本文内容紧凑,希望大家可以有所收获。 Tomcat服务启动非常缓慢 问题症状 Tomcat启动非常缓慢,查看日志如下。 问题原因 SecureRandom这个j…

    2025年3月6日
    200
  • 跨域问题的超详细全解(附示例)

    本篇文章给大家带来的内容是关于跨域问题的超详细全解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 跨域,老生常谈的问题 简述 作为一只前端菜鸟,跨域方面只懂得JSONP和CORS,并未曾深入了解。但随着春招越来越…

    2025年3月6日
    200
  • php输出缓冲区的详细介绍(代码示例)

    本篇文章给大家带来的内容是关于php输出缓冲区的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 php输出缓冲区:缓冲区:实际上是一个内存地址空间。它用来存储速度不同步的设备或者优先级不同的设备之间传输…

    2025年3月6日 编程技术
    200
  • java和php之间有什么不同

    java和php都是应用十分广泛的编程语言,它们之间的存在不少差异。下面本篇文章就来给大家介绍一下java和php之间存在的不同之处,希望对大家有所帮助。 1、专注的领域不同 java是纯面向对象开发,功能强大,分支众多,没有java不能做…

    2025年3月6日
    200
  • nginx反向代理webSocket配置

    最近在做项目的时候用到了websocket协议,而且是在微信小程序中用到了websocket,微信小程序中使用wss协议的时候不能设置端口,只能使用默认的443端口。我的https已经监听了443端口,websocket再去监听443,肯定…

    2025年3月6日
    200
  • nginx反向代理是什么

    反向代理:是用来代理服务器的,代理我们要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。 Nginx在反向代理上,提供灵活的功能,…

    2025年3月6日
    200

发表回复

登录后才能评论