nginx的优化

           Nginx反向代理服务器优化

Nginx是一款轻量级的网页服务器、反向代理器以及电子邮件代理服务器

优点:稳定性好,功能集多,资源消耗少

特点跨平台,配置异常简单,非阻塞、高并发连接,事件驱动,Master/Worker结构:一个master进程,生成一个或多个worker进程,内存消耗小,内置的健康检查功能,节省带宽,稳定性高

正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT)

反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理.

nginx反向代理:Web服务器的调度器

1.反向代理(ReverseProxy)方式是指以代理服务器来接受客户端的连接请求,然后将请求转发给网络上的web服务器

2.反向代理的作用:

保护网站安全:任何来自Internet的请求都必须先经过代理服务器

通过配置缓存功能加速Web请求:可以缓存真实Web服务器上的某些静态资源,减轻真实Web服务器的负载压力

实现负载均衡:充当负载均衡服务器均衡地分发请求,平衡集群中各个服务器的负载压力

Nginx+apache构筑Web服务器集群的负载均衡

安装zlib-devel、pcre-devel等依赖包

yum -y install gcc gcc-c++  make   libtoolzlib zlib-devel pcre pcre-devel openssl openssl-devel

安装nginx

添加www组   创建nginx运行账户www并加入到www组,不允许www用户直接登录系统

解压包

编译安装nginx

优化nginx程序的执行路径

出现报错信息(提示没有那个文件 ,需手动创建)

再一次执行就会成功

编写nginx服务脚本:

vi /etc/init.d/nginx

#!/bin/bash

# chkconfig: 2345 99 20

# description: Nginx Service ControlScript

PROG="/usr/local/nginx1.10/sbin/nginx"

PIDF="/usr/local/nginx1.10/logs/nginx.pid"

case "$1" in

start)

netstat -anplt |grep ":80"&> /dev/null &&pgrep "nginx" &> /dev/null

if [ $? -eq0 ]

then

echo "Nginx service alreadyrunning."

else

$PROG -t &> /dev/null

if [ $? -eq0 ] ; then

$PROG

echo "Nginx service startsuccess."

else

$PROG -t

fi

fi

;;

stop)

netstat -anplt |grep ":80"&> /dev/null &&pgrep "nginx" &> /dev/null

if [ $? -eq0 ]

then

kill -s QUIT $(cat $PIDF)

echo "Nginx service stopsuccess."

else

echo "Nginx service alreadystop"

fi

;;

restart)

$0 stop

$0 start

;;

status)

netstat -anplt |grep ":80"&> /dev/null &&pgrep "nginx" &> /dev/null

if [ $? -eq0 ]

then

echo "Nginx service isrunning."

else

echo "Nginx is stop."

fi

;;

reload)

netstat -anplt |grep ":80"&> /dev/null &&pgrep "nginx" &> /dev/null

if [ $? -eq0 ]

then

$PROG -t &> /dev/null

if [ $? -eq0 ] ; then

kill -s HUP $(cat $PIDF)

echo "reload Nginx configsuccess."

else

$PROG -t

fi

else

echo "Nginx service is notrun."

fi

;;

*)

echo "Usage: $0{start|stop|restart|reload}"

exit 1

esac

给执行权限并启动nginx服务

查看nginx加载的模块

在apache上安装http服务,并创建测试页

客户端访问 第一次不是缓存

刷新访问 查看一下就是缓存了

若只有一台客户端要验证负载均衡和健康检查可以先关掉缓存功能和保持session会话

#proxy_bufferingoff;

#sticky

访问第一次出现的是第一台apache

第二次就是第二台apache

扩展知识1
nginx修改版本等信息
1、vi /usr/local/src/nginx-1.0.12/src/core/nginx.h   #编译前编辑
#define nginx_version
#define NGINX_VERSION
#define NGINX_VER
#define NGINX_VAR
修改上面的信息,即可更改nginx显示版本。
2、vi/usr/local/src/nginx-1.0.12/src/http/ngx_http_special_response.c   #编译前编辑
static u_charngx_http_error_full_tail[] =
static u_charngx_http_error_tail[] =
修改上面的信息为你自己的。
3、vi/usr/local/src/nginx-1.0.12/src/http/ngx_http_header_filter_module.c   #编译前编辑
static char ngx_http_server_string[]=
修改上面的信息为你自己的。
4、编译完成之后,修改/usr/local/nginx/conf目录下面
fastcgi.conf、fastcgi.conf.default、fastcgi_params、fastcgi_params.default
这四个文件里面的版本名称
/usr/local/nginx/sbin/nginx -V  #查看nginx版本号

时间: 2024-10-31 20:34:32

nginx的优化的相关文章

nginx基本优化

1.1   隐藏nginx header里版本号信息 1.2   更改源码隐藏软件名称及版本号 1.3   更改掉nginx默认用户及用户组(worker进程服务用户优化) 1.4   配置nginx worker进程个数 1.5   根据cpu核数进行nginx进程优化 1.6   nginx事件处理模型优化 1.7   调整nginx worker单个进程允许的客户端最大连接数 1.8   配置nginx worker进程最大打开文件数 1.9   开启高效的文件传输模式 1.10  设置连

nginx 配置优化的几个参数

nginx 配置优化的几个参数 2011-04-22 本文地址: http://blog.phpbean.com/a.cn/7/ --水平有限欢迎指正-- -- 最近在服务器上搞了一些nginx 研究了一下 总结总结Sleep nginx配置文件里面需要注意的一些参数 worker_processes 8 nginx要开启的进程数 一般等于cpu的总核数 其实一般情况下开4个或8个就可 我开2个 以了 多了没有太多用 每个nginx进程消耗的内存10兆的模样 worker_cpu_affinit

nginx + SSL优化配置

nginx + SSL优化配置: 1 #http段添加如下配置项: 2 3 http { 4 5 ssl_prefer_server_ciphers on; #设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件. 6 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #协议安全设置 7 ssl_ciphers ALL:!kEDH!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #加密套件 ssl_ciph

Nginx性能优化配置(三)

Nginx性能优化配置(三)  本文主要介绍Nginx的性能优化配置,文章的层次架构如图所示. 1.Nginx的工作进程优化 1.worker_processes 作用:worker进程的数量:通常应该等于小于当前主机的cpu的物理核心数:auto表示根据CPU的物理核心数自动调整工作进程数.使用lscpu或或者cat /proc/cpuinfo | grep 'processor' | wc -l 可以查看CPU的物理核心数. 配置:worker_processes auto: 配置段:mai

企业级Web Nginx 服务优化(1)

企业级Web Nginx 服务优化 总结配置文件: nginx.conf httpd.conf httpd-vhosts httpd-mpm.conf my.cnf php.ini php-fpm.conf 1.1nginx.conf 配置文件基本参数优化 1.1.1 隐藏nginx header 内版本号信息 一些特定的系统及服务漏洞一般都和热定的软件及版本号有关,我们应尽量隐藏服务器的敏感信息(软件名称及版本等信息),这样黑客无法猜到有漏洞的服务是否是对应服务的版本,从而确保web服务器最大

企业级nginx.conf优化参考模板

以下是我整理的非常实用的企业级nginx.conf优化参考模板,整个配置并不一定适合各种环境,所以需要大家按各自需求选取部分功能配置到自己的nginx配置文件中. user nginx;     #Nginx服务的默认用户 worker_processes 4;     #一般为CPU核个数 worker_cpu_affinity 001 0010 0100 1000;  #绑定不同Nginx进程到不同CPU上 worker_rlimit_nofile 6535;     #worker进程最大

高并发下 Nginx的 优化

过去谈过一些关于Nginx的常见问题; 其中有一些是关于如何优化Nginx. 很多Nginx新用户是从Apache迁移过来的,因些他们过去常常调整配置和执行魔术操作来确保服务器高效运行. 有一些坏消息要告诉你, 你不能像Apache一样优化Nginx.它没有魔术配置来减半负载或是让PHP运行速度加快一倍. 高兴的是, Nginx已经优化的非常好了. 当你决定使用Nginx并用apt-get,yum或是make命令安装的时候它就已经进行了最佳优化. (注意那些库经常过期,Wiki的安装页面上通常有

Nginx配置文件优化详解

Nginx配置文件优化详解 对nginx进行优化是重点也是难点,这里给出一些常用的优化措施,以及相关参数的所代表的意思.有些参数需要结合公司服务器进行设置. 全局变量的优化: #定义Nginx运行的用户和用户组user  www  www: #启动进程,通常设置成和cpu的数量相等 worker_processes  8: #为每个进程分配cpu. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 

二、nginx模块优化和进程管理

博客:http://lijinhuan.blog.51cto.com/ 微博:http://weibo.com/lijinhuanexperience 代码:https://github.com/lijinhuan 一.模块管理 1.nginx是模块化结构,但是它和apache不一样,它的模块不能动态加载或者卸载. 它是一种静态模块系统,如果想要卸载或者安装新的模块,必须重新编译指定 2.编译时./configure --help 查看所有模块:--without--xx表示默认安装,--wit

Nginx 配置优化

1.隐藏nginx header版本号 [[email protected] tmp]# curl -I 192.168.56.102:1983 HTTP/1.1 200 OK Server: nginx/1.12.1 Date: Thu, 20 Jul 2017 06:41:49 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Wed, 19 Jul 2017 07:46:59 GMT Connection: kee