深入浅析nginx部署及简单优化

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

研究nginx优化时反复安装清理nginx,为方便做了一个简单部署脚本,用的最新稳定版1.14.0,默认路径,加入systemd系统进程管理中,可以通过systemd管理nginx的启动、终止、重载、状态、开机自启等.

#!/bin/bash
yum -y install gcc pcre pcre-devel
sleep 2
cd ~
tar -zxvf ~/zlib-1.2.11.tar.gz
cd ~/zlib-1.2.11 && ./configure && make && make install
cd ~
tar -zxvf ~/nginx-1.14.0.tar.gz
cd ~/nginx-1.14.0 && ./configure && make && make install
cd ~
#/usr/local/nginx/sbin/nginx
firewall-cmd --set-default-zone=trusted
touch /lib/systemd/system/nginx.service
echo "[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target" > /lib/systemd/system/nginx.service
systemctl enable nginx.service
systemctl restart nginx.service
echo "nginx done"

需要再次覆盖nginx时,用awk找到nginx的进程然后kill掉,再次执行安装脚本就行.

 kill -9 $`ps aux | grep 'nginx' | awk 'NR==2{print $2}'`

二、nginx优化

nginx优化配置集中在nginx.conf文件的main和events段.

main段中worker配置,可以通过work_cpu_affinity选项,按任务类型:CPU密集型或者IO密集型,根据实际业务情况绑定每个worker进程运行在哪个CPU核心上,(前提是系统必须为多核心CPU),例如

 # 4核心CPU中,开启4个worker,每个worker分别对应cpu0/cpu1/cpu2/cpu.
 worker_processes  4;
 worker_cpu_affinity 0001 0010 0100 1000;
 # 4核心CPU中,也可以只开启2个worker,第一个worker对应cpu0/cpu2,第二个worker对应cpu1/cpu3.
 worker_processes  2;
 worker_cpu_affinity 0101 1010;

envents段中开启集中一次性接入连接请求和串行方式接入新连接

events {
  worker_connections 1024;  # 每个worker最大连接数.
  multi_accept on;      # 是否集中接入监听到的连接请求,默认为off,关闭时一次只接收一个连接.
  accept_mutex on       # 默认为on,表示以串行方式接入新连接,off时,将通报给所有worker

其它的,例如HTTP段优化,sendfile、keepalive_timeout、gzip是nginx中必做.

总结

以上所述是小编给大家介绍的nginx部署及简单优化 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Angular项目从新建、打包到nginx部署全过程记录

    前言 当前,AngularJS作为Javascript的MVC(也有人说是MV*,暂且不纠结这个)框架被广泛使用,它为更快且更容易地开发响应式的Web提供了强大的机制.作为MVC框架,它将Web前端代码分成三个组件Model,View和Controller.因此,在data model,应用逻辑(Controllers)和view展示之间有明确的分离,让你更容易地关注关键的开发区域.view接收来自model的数据来展示.当用户通过点击或者敲击键盘和应用交互时,controller通过改变模型中

  • Nginx优化配置和内核优化 实现突破十万并发

    nginx指令中的优化(配置文件) 复制代码 代码如下: worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. 复制代码 代码如下: worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu. 复制代码 代码如下: wo

  • 使用google-perftools优化nginx在高并发时的性能的教程(完整版)

    注意:本教程仅适用于Linux. 下面为大家介绍google-perftools的安装,并配置Nginx和MySQL支持google-perftools. 首先,介绍如何优化Nginx: 1,首先下载并安装google-perftools: 注意,如果是64位系统: 那么你需要做:1)先安装libunwind或者2)在configure时添加--enable-frame-pointers. 那么首先说说如何安装libunwind: 复制代码 代码如下: wget http://download.

  • windows安装nginx部署步骤图解(反向代理与负载均衡)

    一.下载安装Nginx(本文环境为windows xp 32bit环境) 解压nginx-1.0.11.zip,进入nginx-1.0.11,在命令行中执行命令让Nginx启动.具体操作如下图: 测试是否安装成功,输入地址:http://localhost:8090 浏览器显示结果如下图: OK,Nginx部署成功了. 二.关于Nginx的反向代理配置. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器

  • CentOS7 Docker Nginx部署及运行详解

    网上找了一些资料部署,出现不一样的问题,现在总结一下自己的部署流程. 1.资源准备 Dockerfile文件 # "ported" by Adam Miller <maxamillion@fedoraproject.org> from # https://github.com/fedora-cloud/Fedora-Dockerfiles # # Originally written for Fedora-Dockerfiles by # scollier <scol

  • 详解通过Nginx部署Django(基于ubuntu)

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.nginx把所有静态请求自己来处理(这是NGINX的强项).然后,NGINX将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求. 可见,uwsgi的作用就类似一个桥接器.起到桥梁的作用. Linux的强项是用来做服务器,所以,下面的整个部署过程我们选择在U

  • Nginx配置优化详解

    大多数的Nginx安装指南告诉你如下基础知识--通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了.然而,如果你真的想挤压出nginx的性能,你必须更深入一些.在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能.需要注意一点,这不是一个全面的微调指南.这是一个简单的预览--那些可以通过微调来提高性能设置的概述.你的情况可能不同. 基本的(优化过的)配置 我

  • 深入浅析nginx部署及简单优化

    Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器.支持FastCGI.SSL.Virtual Host.URL Rewrite.Gzip等功能.并且支持很多第三方的模块扩展. Nginx的稳定性.功能集.示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站. 研究

  • php nginx 实时输出的简单实现方法

    PHP 里开启实时输出方法是 ob_implicit_flush() , 但它大部分情况下都不管用, 因为 php.ini 配置里 output_buffering 输出缓冲大部分是 On 开启的, 还有 zlib.output_compression 也经常会被开启, 除了 PHP 这一层,还有 Nginx 的缓冲设置 proxy_buffering ,和压缩 gzip 也大都是开启的. 为了一两个页面的需求,修改整个服务器的网站配置,恐怕没有人会做这种选择. 这里推荐一下简单的方法: set

  • 使用 Nginx 部署静态页面的方法

    Nginx 介绍 Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器, Nginx,它的发音为 " engine X ",是一个高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/ POP3/ SMTP 代理服务器.Nginx 是由俄罗斯人 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了.Igor Sysoev 在建立的项目时,使用基于 BSD 许可. 英文主页:http://nginx.net. Ngi

  • uwsgi+nginx部署Django项目操作示例

    本文实例讲述了uwsgi+nginx部署Django项目操作.分享给大家供大家参考,具体如下: uWSGI概述 uWSGI 是一个全功能的 HTTP 服务器,可以把 HTTP 协议转化成语言支持的网络协议. 安装uwsgi 使用pip安装即可 pip install uwsgi 安装完成后可测试 #vim test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/ht

  • nginx部署多前端项目的几种方法

    个人总结了3种方法来实现在一台服务器上使用nginx部署多个前端项目的方法. 基于域名配置 基于端口配置 基于location配置 在正式开始之前,我们先来看一下nginx安装的默认配置文件: /etc/nginx/nginx.conf 文件 可以看到图中的:include /usr/nginx/modules/*.conf,这句话的作用就是可以在nginx启动加载所有 /usr/nginx/modules/ 目录下的 *.conf 文件. 所以,平时我们为了方便管理,可以在此目录下面定义自己的

  • Golang项目搭配nginx部署反向代理负载均衡讲解

    目录 部署Go语言项目 独立部署 编译 nohup supervisor 搭配nginx部署 正向代理与反向代理 使用yum安装nginx Nginx配置文件 Nginx常用命令 Nginx反向代理部署,无负载均衡 Nginx反向代理部署,有负载均衡 Nginx分离动静态文件请求 前后端分开部署 允许所有请求跨域 部署Go语言项目 本文以部署 Go Web 程序为例,介绍了在 CentOS7 服务器上部署 Go 语言程序的若干方法. 独立部署 Go 语言支持跨平台交叉编译,也就是说我们可以在 W

  • Nginx 部署的虚拟主机使用 Let's Encrypt 加密 https的方法

    目录 需要前提条件 安装 python3-certbot-nginx 插件 获得 pem 秘钥 配置你的虚拟主机 检查网站 HTTPS 情况 HTTPS 是现在网站的标配了,很多服务都是必须使用 https,如果你不使用的话,浏览器可能就不会对你非常友好了. 如果你不想使用商业的 CA 秘钥的话,你可以使用 Let’s Encrypt 来进行加密. 使用 Let’s Encrypt 唯一不好的地方就是每 3 个月要更新一次,当然你也可以使用自动的更新来处理就好了. 我们需要通过安装插件来实现:

  • 一篇文章快速掌握Nginx部署前端项目(Nginx安装配置及部署都非常详细!)

    目录 前言: Nginx的三个作用: 负载均衡: 反向代理: 动静分离: Nginx的下载安装(Linux环境下) Nginx的使用 三.部署前端项目 总结 前言: 之前在Linux系统中部署了后端项目,今天继续来给大家分享如何部署前端项目. 涉及到了Nginx的简单介绍以及Nginx如何安装及配置并且能够部署前端项目 Nginx是一个轻量级的反向代理web服务器,在当今应用地非常广泛,特别是前后端分离的情况下. Nginx的三个作用: 负载均衡: 当我们的单个项目访问量达到了单个tomcat无

  • vue.js项目nginx部署教程

    nginx是一个高性能的HTTP和反向代理服务器.因此常用来做静态资源服务器和后端的反向代理服务器.本文主要记录使用nginx去部署使用vue搭建的前端项目,项目基于vue官方的脚手架vue-cli构建. 开发环境搭建完成. 二.编译部署 1.项目路径下demo输入命令npm run build 编译完成后会发现在demo文件夹下多出一个dist文件夹这里面就是编译好的文件了. 2.网上下载nginx,下载地址http://nginx.org/en/download.html,解压下载的ngin

随机推荐