nginx实战

本文详细介绍了Nginx的安装过程,包括使用YUM和源码编译两种方式,并讲解了如何添加HTTP_SSL模块。此外,还展示了如何配置Nginx以支持TCP和HTTP反向代理,以及如何进行服务的热更新、停止和启动。最后,文章提供了配置文件示例,展示如何设置并发连接数、反向代理策略等关键参数。
摘要由CSDN通过智能技术生成

nginx概述

Nginx,一种高性能的http服务器软件。俄国人发明,与httpd相比,它的特点是并发能力强,资源消耗小。

其他常见的http服务端软件还有:Httpd和IIS

Httpd就是Apache,IIS是“微软”的产品,是Windows Server中默认提供的http服务器。

yum安装

centos通过nfinx官网的yum源安装稳定版
1.安装先决条件:sudo yum install yum-utils
2.创建源文件:vim /etc/yum.repos.d/nginx.repo
写入:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

3.安装:sudo yum install -y nginx

源码安装

安装依赖

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

下载

wget -c http://nginx.org/download/nginx-1.16.1.tar.gz
//版本自己选择

解压

tar -zxvf nginx-1.16.1.tar.gz

配置编译

cd nginx-1.16.1 # 进入到解压目录
./configure --prefix=/usr/local/nginx

–prefix 用于指定nginx编译后的安装目录
要反向代理tcp的话:

./configure --prefix=/usr/local/nginx --with-stream

相关链接:nginx unknown directive “stream”

编译安装

make && make install

进入安装目录,启动服务器

cd /usr/local/nginx

初始安装完成,该目录只有4个文件夹:conf html logs sbin

  • conf 配置文件目录
  • html 网站的静态文件目录
  • sbin 一些可执行文件目录,例如启动nginx就要执行该文件夹下面nginx命令
cd sbin  
./nginx -c /usr/local/nginx/conf/nginx.conf  //启动  后面的-c参数是说指定配置文件
ps -ef | grep nginx //可查看进程  浏览器可访问

软链接
目前启动、重启、关闭我们都要进入/usr/lcoal/nginx/sbin下目录通过./nginx 执行,更简单的办法就是创建一个软链接到/usr/bin/nginx

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

重启终端,在任意目录执行nginx都行了

命令补充

nginx -s reload  //热更新配置
nginx -s stop    //停止服务

nginx -t  //检测配置文件是否合法
nginx –V  //查看版本及编译信息

添加新的模块
如上我们配置nginx时,没有加一个模块。那么如何在安装nginx后添加一个新模块呢?

1、进入nginx的源码目录
2、重新执行配置

./configure --prefix=/usr/local/nginx --with-http_ssl_module
// 本次我们加上了http_ssl_module模块,当然还是是安装到usr/local/nginx

3、执行make

注意!!!千万别执行make install,不要回覆盖安装!!!!!

执行make完毕后,会有一个objs目录,然后在objs目录会有一个新的nginx执行文件

4、备份旧的nginx程序,并将新的nginx复制到旧的目录

5、测试新的nginx程序是否正确

cd /usr/local/nginx/sbin #进入/usr/local/nginx/sbin 
./nginx -t
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak #备份旧的
cp -f  nginx /usr/local/nginx/sbin/nginx # 复制新的nginx到/usr/local/nginx
# 执行上面这条复制命令,确保在objs目录,不然路径不对

6、重启nginx

./nginx -s reload

7、查看模块是否已安装

./nginx -V 

在这里插入图片描述
8、重启Nginx

./nginx -s quit
./nginx

nginx配置文件

同时支持tcp和http反向代理功能

worker_processes  auto;

error_log  /var/log/nginx/error.log;

events {
   # 每一个worker进程能够处理的最大连接数(与客户端的连接数+与上游服务器的连接数)
   worker_connections 8096;
}

# tcp 反向代理
stream {
   upstream tcpCluster {
      least_conn;
      server 10.131.0.5:8000;
      server 10.131.0.6:8000;
   }
   server {
      listen 9199 backlog=10000;
      proxy_pass tcpCluster;
      proxy_timeout 3s;
      proxy_connect_timeout 5s;
   }
}

# http 反向代理
http {
   include       mime.types;
   default_type  application/octet-stream;

   sendfile       on;

   # 一个keepalive连接可以发起的最大请求数
   keepalive_requests 1000;

   access_log off;

   # 定义了一个上游服务器集群
   upstream upCluster{
      # 使用最少连接数调度算法
      least_conn;
      # 每个worker进程与上游服务器之间拥有的最大空闲keepalive连接数
      keepalive 100;
      server 10.131.0.5:8000;
      server 10.131.0.6:8000;
   }

   server {
      # backlog 的值需要与net.core.somaxconn相同
      listen      9188 backlog=10000;
      location / {
         # 反向代理到上面所定义的上游服务器集群
         proxy_pass http://upCluster;
         # 不论客户端与nginx之间是长连接还是短连接;nginx和上游服务器之间一律用长连接
         proxy_http_version 1.1;
         proxy_set_header Connection "";
      }   
   }
}   
tcp端口: 9199
http端口: 9188

proxy_timeout ,proxy_connect_timeout ,least_conn等参数设置以服务而定,具体含义参见官网

参考文档:
Linux[CentOS]下编译安装Nginx 步骤
nginx unknown directive “stream”
Nginx 架构浅析
增加nginx虚拟主机配置文件(conf.d)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值