《零基础学Nginx:轻松搭建高性能Web服务器-kylin系统》

一、概述

Nginx(发音为“engine X”)是一款高性能的开源HTTP服务器和反向代理服务器,同时也支持IMAP/POP3代理服务器。它由俄罗斯程序员伊戈尔·西索夫(Igor Sysoev)开发,并于2004年首次发布。Nginx以其高并发处理能力、低资源消耗和高性能而闻名,广泛应用于互联网行业,是许多大型网站和高性能需求场景的首选解决方案。

二、Nginx的特点

(1)高性能:Nginx采用事件驱动的异步非阻塞架构,能够高效处理大量并发连接。与传统的Apache服务器相比,Nginx在处理高并发请求时资源消耗更低,性能更优。

(2) 高可用性:支持热部署和热升级,可以在不中断服务的情况下更新配置文件或升级软件版本。

(3)模块化设计:通过加载不同的模块来扩展功能,如支持PHP、Python、Ruby等语言的处理模块,以及负载均衡、缓存等功能模块。

(4) 轻量级:Nginx的资源占用非常低,即使在高负载情况下也能保持较低的CPU和内存占用。

(5) 强大的反向代理功能:可以作为反向代理服务器,将客户端请求转发到后端服务器,并将后端服务器的响应返回给客户端。同时支持负载均衡、缓存和SSL加密等功能。

三、Nginx的主要功能

(1)Web服务器

• 提供静态内容(如HTML、CSS、JavaScript、图片等)的高效访问。

• 支持动态内容处理,通过与后端语言(如PHP、Python、Ruby等)结合,使用FastCGI、uWSGI等协议进行通信。

(2)反向代理服务器

• 将客户端请求转发到后端服务器,隐藏后端服务器的细节,增强安全性。

• 支持负载均衡,可以将请求分发到多个后端服务器,提高系统的可用性和扩展性。

• 提供缓存功能,可以缓存后端服务器的响应,减少对后端服务器的压力,提高响应速度。

(3)负载均衡

• 支持多种负载均衡算法,如轮询、加权轮询、url哈西、最少连接数、IP哈希。

• 可以对后端服务器进行健康检查,自动移除故障服务器,确保服务的高可用性。

(4)缓存

• 提供页面缓存功能,可以缓存后端服务器的响应,减少对后端服务器的请求次数。

• 支持缓存失效策略,可以根据HTTP头信息或自定义规则进行缓存失效。

(5)SSL/TLS支持

• 提供SSL/TLS加密功能,可以保护客户端与服务器之间的通信安全。

• 支持OCSP Stapling、TLS 1.3等高级安全特性。

四、部署Nginx服务

4.1、配置Nginx下载仓库

vim /etc/yum.repos.d/nginx.repo

name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

4.2、安装nginx

yum -y install nginx

4.3、检查nginx版本

nginx -v

4.4、启动nginx并加入开机自启动

systemctl start nginx

systemctl enable nginx

4.5、检查端口看nginx是否开启

netstat -lntup | grep nginx

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1166/nginx: master

4.6、nginx配置文件

cat /etc/nginx/nginx.conf
# 核心区块
user  nginx;                                               # 运行nginx的用户 安装nginx自动创建此用户
worker_processes  auto;                          # nginx启动进程数量 以核心为准

error_log  /var/log/nginx/error.log notice; # 错误日志的位置
pid        /var/run/nginx.pid;                       # nginx的pid号写入到此文件中


#事件模块
events {                            
    worker_connections  1024;                 # 每个进程最大的连接数
}


# http区块 接收浏览器请求 并且响应浏览器请求
http {
    include       /etc/nginx/mime.types;          # 网站支持的文件类型
    default_type  application/octet-stream;   # 如果网站不支持的类型变为下载到本地

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';  # 日志格式

    access_log  /var/log/nginx/access.log  main;   # 访问日志的位置

    sendfile        on;                                                # 文件传输
    #tcp_nopush     on;

    keepalive_timeout  65;                                    # 长连接 65秒自动和浏览器断开

    #gzip  on;                                                        # 是否资源压缩

    include /etc/nginx/conf.d/*.conf;                      # 将conf.d下的*.conf引入到当前的文件
   
}
server区块,网站的配置。server区块是包含在http区块中
cd /etc/nginx/conf.d
vim game.conf
server {                             
      listen 80;                                            #监听的端口
      server_name ip/端口/ip:端口;            #自己购买的域名
      
      location / {                                        #路径匹配
      root /game;                                      #获取信息的位置
      index index.html;                             #默认给浏览器返回的文件
      }
}
检查nginx配置文件  nginx -t

五、部署Nginx业务

5.1、多IP部署

5.1.1、部署网站业务

服务器:web01    ip:10.0.0.7

网站:小霸王游戏、医疗网站

5.1.2、编辑配置文件

vim /etc/nginx/conf.d/ip.conf

server {

      listen 10.0.0.7:80;

      server_name _;

      location / {

      root  /app/xiaobawang;

      index  index.html;   

      }

}

server {

      listen 10.0.0.8:80;

      server_name _;

      location / {

      root  /app/yiliao;

      index  index.html;

       }

}

5.1.3、检查配置文件语法是否有错误

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

5.1.4、创建代码目录

mkdir -p   /app/xiaobawang

mkdir -p  /app/yiliao

5.1.5、将小霸王代码拷贝到代码文件夹中并解压

rz  /root/type-game.zip

mv /root/type-game.zip  /app/xiaobawang

cd /app/xiaobawang

unzip type-game.zip

type-game.zip

5.1.6、将医疗代码拷贝到代码文件夹中并解压

 rz  /root/yiliao.tar.gz

mv /root/yiliao.tar.gz  /app/yiliao

cd /app/yiliao

tar xf yiliao.tar.gz

yiliao.tar.gz

5.1.7、重启nginx服务

systemctl restart  nginx

5.1.8、增加IP

ip add add 10.0.0.8 dev ens33

5.1.9、通过浏览器访问IP

5.2、多端口部署

5.2.1、部署网站业务

服务器:web01    ip:10.0.0.7

网站:小霸王游戏  10.0.0.7:80

           医疗网站     10.0.0.7:81

5.2.2、编辑配置文件

vim /etc/nginx/conf.d/port.conf

server {

       listen 80;

       server_name _;

       location / {

       root /app/xiaobawang;

       index  index.html;

       }

}

server {

       listen 81;

       server_name _;

       location / {

       root /app/yiliao;

       index index.html;

       }

}

5.2.3、检查配置文件语法是否正确

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

5.2.4、创建代码目录

mkdir -p /app/xiaobawang

mkdir -p /app/yiliao

5.2.5、将小霸王的代码拷贝到对应代码目录并解压

 rz  /root/type-game.zip

mv /root/type-game.zip  /app/xiaobawang

cd /app/xiaobawang

unzip type-game.zip

type-game.zip

5.2.6、将医疗的代码拷贝到对应代码目录并解压

 rz  /root/yiliao.tar.gz

 mv /root/yiliao.tar.gz  /app/yiliao

 cd /app/yiliao

 tar xf yiliao.tar.gz

 yiliao.tar.gz

5.2.7、重启nginx服务

systemctl restart  nginx

5.2.8、浏览器访问 

5.3、多域名部署 

5.3.1、部署网站业务

服务器:web01    ip:10.0.0.7

网站:小霸王游戏  www.game.com

           医疗网站     www.yiliao.com

5.3.2、编辑配置文件

vim /etc/nginx/conf.d/yuming.conf

server {

     listen 80;

     server_name www.game.com;

     location / {

     root /app/xiaobawang;

     index index.html

     }

}

server {

     listen 80;

     server_name www.yiliao.com;

     location / {

     root /app/yiliao;

     index index.html;

     }

}

5.3.3、检查配置文件语法是否正确

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

5.2.4、创建代码目录

mkdir -p /app/xiaobawang

mkdir -p /app/yiliao

5.2.5、将小霸王的代码拷贝到对应代码目录并解压

 rz  /root/type-game.zip

mv /root/type-game.zip  /app/xiaobawang

cd /app/xiaobawang

unzip type-game.zip

type-game.zip

5.2.6、将医疗的代码拷贝到对应代码目录并解压

 rz  /root/yiliao.tar.gz

 mv /root/yiliao.tar.gz  /app/yiliao

 cd /app/yiliao

 tar xf yiliao.tar.gz

 yiliao.tar.gz

5.2.7、重启nginx服务

systemctl restart  nginx

 5.2.8、将对应域名解析到本地hosts

10.0.0.7  www.game.com   www.yiliao.com

5.2.9、通过浏览器访问

六、小结

Nginx是一款功能强大、性能卓越的开源服务器软件,适用于各种规模的网站和应用。通过合理配置和优化,Nginx可以为企业提供高效、稳定、安全的Web服务。

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。 Nginx的特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginxNginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。目前 Nginx 的1.0.0稳定版已发布,开发版本为0.9.x,稳定版为 0.8.x,历史稳定版为 0.7.x,建议使用 0.8系列作为生产版本。 Nginx 的源代码使用 2-clause BSD-like license。 Nginx 是一个很牛的高性能Web和反向代理服务器,它具有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。 Nginx作为负载均衡服务器Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。 作为邮件代理服务器Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last. fm 描述了成功并且美妙的使用经验。 Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值