Nginx优化
博文结构
Nginx介绍
Nginx的核心特点
Nginx平滑升级
修改Nginx版本信息
Nginx虚拟主机配置
nginx配置文件location选项的作用
配置https访问nginx
开启Nginx访问认证创新互联自2013年创立以来,先为都江堰等服务建站,都江堰等地企业,进行企业商务咨询服务。为都江堰企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
一.nginx简介
Nginx是一款轻量级的网页服务器、反向代理服务器以及电子邮件代理服务器。因它的稳定性、丰富的功能集、实例配置文件和低系统资源消耗而闻名。
Nginx已经在俄罗斯最大的门户网站上运行,同时俄罗斯有超过20%的虚拟主机平台采用Nginx作为反向代理服务器;在国内,Nginx已经运行在淘宝、新浪、网易等多家网站使用Nginx作为Web服务器或反向代理服务器。
二.nginx的核心特点
(1)跨平台:Nginx 可以在大多数 OS 编译运行,而且也有 Windows 的版本
(2)配置异常简单:非常容易上手
(3)非阻塞、高并发连接:官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 2~3 万并发连接数。(这得益于 Nginx 使用了最新的 epoll 模型)
(4)事件驱动:采用 epoll 模型,支持更大的并发连接
(5)Master/Worker 结构:一个 master 进程,生成一个或多个 worker 进程
(6)内存消耗小:处理大并发的请求内存消耗非常小。在 3 万并发连接下,开启的 10 个 Nginx 进程才消耗 150M 内存(15Mx10=150M)
(7)内置的健康检查功能:如果 Nginx 代理的后端的某台 Web 服务器宕机了,不会影响 前端访问。
(8)节省带宽:支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。 (9)稳定性高:用于反向代理,宕机的概率微乎其微
三.nginx平滑升级(案例)
下载软件包
[root@localhost ~]# yum -y install pcre-devel openssl-devel
[root@localhost ~]# tar zxf nginx-1.14.0.tar.gz
[root@localhost ~]# tar zxf nginx-1.2.4.tar.gz
[root@localhost nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module && make && make install
[root@localhost nginx-1.14.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.14.0]# nginx
[root@localhost nginx-1.14.0]# useradd nginx -s /sbin/nologin -M
[root@localhost nginx-1.2.4]# cd nginx-1.2.4/
[root@localhost nginx-1.2.4]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module && make
[root@localhost nginx-1.2.4]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
[root@localhost nginx-1.2.4]# cp objs/nginx /usr/local/nginx/sbin/
[root@localhost nginx-1.2.4]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0: LISTEN 17739/nginx: master
[root@localhost nginx-1.2.4]# kill -USR2 17739
[root@localhost nginx-1.2.4]# nginx -s reload
[root@localhost ~]# kill -QUIT 17739
////平滑的关闭旧版的nginx进程
[root@localhost nginx-1.2.4]# nginx -V \\查看版本
nginx version: nginx/1.2.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module
- 关于nginx使用kill命令常用的参数:
QUIT 平滑关闭
HUP 平滑重启,重新加载配置文件
USR1 重新打开日志文件
USR2 平滑升级可执行程序
WINCH 平滑关闭工作进程
四.修改nginx版本信息
[root@localhost ~]# vim /usr/src/nginx-1.2.4/src/core//nginx.h
……………… //省略部分内容
#define nginx_version 1002004
#define NGINX_VERSION "8.8.8.8" //根据实际情况修改为自己想要的信息
#define NGINX_VER "xws/" NGINX_VERSION //同上,注意修改完的lzj
[root@localhost ~]# vim /usr/src/nginx-1.2.4/src/http/ngx_http_header_filter_module.c
……………… //省略部分内容
static char ngx_http_server_string[] = "Server: xws" CRLF; //与上一个文件中修改的名称一样(lzj)
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
[root@localhost ~]# vim /usr/src/nginx-1.2.4/src/http/ngx_http_special_response.c
……………… //省略部分内容
static u_char ngx_http_error_tail[] =
"
xws " CRLF //注意与上两个文件中修改的lzj要一致
"