nginx的部署(一)

1 为什么使用Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

  • Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡服务器。在性能上,Nginx占用很少的系统资源,能支持更多的并发连接,达到更高的访问效率;在功能上,Nginx是优秀的代理服务器和负载均衡服务器;在安装配置上,Nginx安装简单、配置灵活。
  • Nginx支持热部署,启动速度特别快,还可以在不间断服务的情况下对软件版本或配置进行升级,即使运行数月也无需重新启动。

2 nginx的部署

下载nginx安装包,解压:tar zxf nginx-1.8.1.tar.gz
在这里插入图片描述

(1)配置

  • 切换到nginx的目录:cd nginx-1.8.1/
  • 查看编译所需的参数:./configure --help

在这里插入图片描述

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-threads --with-file-aio --with-http_stub_status_module
##--prefix:指定编译后程序存放的路径 
##--with-http_ssl_module:加密模块
##--with-threads:启用thread pool支持
##--with-file-aio:启用file aio支持
##--with-http_sub_module:启用ngx_http_sub_module支持,允许用一些其他文本替换nginx响应中的一些文本

在这里插入图片描述

  • 编译环境gcc g++ 开发,需要安装相应的库:yum install gcc -y

在这里插入图片描述

在这里插入图片描述

  • 根据错误提示解决依赖性: yum install pcre-devel -y

在这里插入图片描述

在这里插入图片描述

  • 根据错误提示解决依赖性:yum install openssl-devel -y

在这里插入图片描述

  • 直至执行成功即可

(2)编译:make

在这里插入图片描述

(3)安装:make install
在这里插入图片描述

在这里插入图片描述

  • 查看文件占用空间的大小:du -sh /usr/local/nginx/

在这里插入图片描述

  • vim auto/cc/gcc :注释掉这行,去掉 debug 模式编译,编译以后程序只有几百 k

在这里插入图片描述

  • 删除nginx程序:rm -rf /usr/local/nginx/
  • make clean:清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件

在这里插入图片描述
重新安装nginx

  1. 配置
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-threads --with-file-aio --with-http_stub_status_module
  1. 编译:make

  2. 安装:make install

在这里插入图片描述

3 nginx的启动

	vim /root/.bash_profile :指定存放nginx的目录加入环境变量
	source /root/.bash_profile:立即生效
	nginx:启动nginx

在这里插入图片描述

  • 确保80端口没有被其他进程占用,否则nginx将无法启动

在这里插入图片描述

  • 真机测试: curl 172.25.12.1

在这里插入图片描述

4 nginx的并发优化

  • 编辑nginx的配置文件:vim /usr/local/nginx/conf/nginx.conf
    在这里插入图片描述

      worker_processes  auto    ##自动绑定cpu的个数
      worker_connections  65535  ##单个工作进程并发连接数
      nginx作为http服务器时: max_clients = worker_processes * worker_connections
      nginx作为反向代理服务器时:max_clients = worker_processes * worker_connections / 2
    
  • 查看进程:ps ax
    在这里插入图片描述

  • 创建nginx用户:useradd -M -d /usr/local/nginx/ -s /sbin/nologin nginx
    在这里插入图片描述

  • 编辑nginx的配置文件:vim /usr/local/nginx/conf/nginx.conf
    在这里插入图片描述

  • 重新加载nginx:nginx -s reload
    在这里插入图片描述

  • 修改用户进程可打开文件数限制,编辑linux资源限制配置文件:vim /etc/security/limits.conf,nginx用户能打开文件描述符数量是65535
    在这里插入图片描述

5 负载均衡

(1) 反向代理服务器组

编辑nginx的配置文件:vim /usr/local/nginx/conf/nginx.conf

http {
    upstream westos {  //配置反向代理服务器组,westos是服务器组的名称
    server 172.25.12.2:80; //westos组中服务器IP或域名,端口80
    server 172.25.12.3:80;
    }
    include       mime.types;
    default_type  application/octet-stream;
   ....
   ....
     server {
    listen 80;
    server_name www.westos.org;  // 域名地址
    location / {
       proxy_pass http://westos; //表示将所有请求转发到westos服务器组中配置的某一台服务器上
    }
   }
  • 重新加载nginx:nginx -s reload

  • 编辑测试主机的dns解析文件:/etc/hosts
    在这里插入图片描述

  • 测试:
    在这里插入图片描述

(2) backup和weight

  • 编辑nginx的配置文件:vim /usr/local/nginx/conf/nginx.conf
http {
    upstream westos {
    server 172.25.12.2:80 weight=2; ##weight分配策略,server2的权重为2/3
    server 172.25.12.3:80;
    server 127.0.0.1 backup; ##如果负载均衡的两台服务器均宕机,则访问本机
    }
    ...
  • 重新加载nginx:nginx -s reload
  • 测试
    在这里插入图片描述
  • 模拟server2和server3均宕机:systemctl stop httpd
    没有backup参数时,访问将出错
    在这里插入图片描述
    有server 127.0.0.1 backup参数时,访问本机
    在这里插入图片描述

(3) ip_hash算法

  • ip_hash算法:Nginx中的ip_hash技术能够将某个ip
    的请求定向到同一台后端web机器中,这样一来这个ip下的客户端和某个后端 web机器就能建立起稳固的session

  • 编辑nginx的配置文件:vim /usr/local/nginx/conf/nginx.conf
    在这里插入图片描述

  • 重新加载nginx:nginx -s reload

  • 测试
    在这里插入图片描述
    只有当server3宕机时,server2提供服务
    在这里插入图片描述

6 nginx的服务脚本

  • 编写nginx的服务脚本nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
	 nginx -s stop  ##停止nginx服务
	 mv nginx.service /etc/systemd/system   ##systemctl管理的服务脚本存放的位置
	 systemctl daemon-reload       ##使新服务的服务程序配置文件生效
	 systemctl start nginx.service  ##开启nginx服务
	 systemctl status nginx.service   ##查看nginx的状态

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值