从零开始学Nginx(二):安装配置Nginx

从零开始学Nginx(二):安装配置Nginx

安装nginx

  • 想要使用nginx的常用功能,必须确保系统安装gcc、pcre、zlib、openssl这四个库,以centos系统为例来进行安装
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl spenssl-devel
  • 直接从官网获取最新的下载源码包并解压
wget http://nginx.org/download/nginx-1.19.1.tat.gz
tar -zxvf nginx-1.19.1.tat.gz
  • 进入nginx的源码目录,开始进行编译安装
cd nginx-1.19.1
./configure	//默认安装部署后的根目录为/usr/local/nginx,可以通过--prefix命令自定义安装路径
make
make install
  • nginx的命令行控制
/usr/local/nginx/sbin/nginx		//	直接启动nginx
/usr/local/nginx/sbin/nginx -t	//检查配置信息是否有误
/usr/local/nginx/sbin/nginx -V	//显示版本信息以及编译阶段的信息
/usr/local/nginx/sbin/nginx -s stop	//快速停止服务,等同于kill -s SIGTERM <nginx的master进程号>
/usr/local/nginx/sbin/nginx -s quit	//优雅的停止服务,与快速停止服务时master进程直接跳出循环、终止进程不同,优雅地停止服务会关闭监听端口、停止连接,然后处理完当前地连接并退出进程,等同于kill -s SIGQUIT <nginx的master进程号>
/usr/local/nginx/sbin/nginx -s reload	//重读配置并热生效

nginx使用一个master进程来管理多个worker进程,一般情况下,worker进程数量与服务器上CPU的核心数相同。master进程主要管理worker进程,而每一个worker进程都是真正的提供互联网服务,这种master-worker进程部署带来的好处有:

  1. mater进程唯一,只用于纯管理工作,为管理员提供包括启动、停止、平滑升级等命令行服务,通常root用户启动master进程,worker进程的权限小于master进程。当worker进程出现错误导致coredump时,master进程可以立刻启动新的worker进程继续服务,提升服务的健壮性
  2. 多个worker进程不但可以提高服务的健壮性,还可以充分利用先用的多核架构,实现微观上的多核并发处理。nginx的worker进程数设置为cpu核心数,使得不同进程处理并发请求时几乎没有同步锁的限制,worker进程通常不会进入睡眠状态,一个进程处理的请求数仅限于内存大小。因此,当worker数与cpu核心数相等时,进程间切换的代价最小。

简单地运行nginx

nginx的配置文件在安装目录下的conf/nginx.conf,通过修改这个配置文件,可以实现nginx的不同功能。

  1. 静态服务器
    //修改nginx.conf文件,新增server块
    server {
        listen 8090;
        server_name test;
        location / {
            root data/www;
            index wwwindex.html;
        }
        location ~ \.(gif|jpg|png)$ {
            root data/images;
        }
    }

reload配置文件

/usr/local/nginx/sbin/nginx -s reload

打开浏览器,在搜索框输入http://localhost:8090/,如果nginx在虚拟机上运行,需要通过ifconfig命令得到虚拟机的ip地址,用这个ip地址将localhost替换即可。
浏览器显示出如下页面即为请求成功
在这里插入图片描述
server配置中的第二个location块,当用户输入的uri存在图片格式,会到相应的文件夹data/images中进行寻找并返回到客户端,若不存在,就会返回404错误。
2. 反向代理
前面说过nginx一个很广泛的用途是用作反向代理,下面通过修改nginx.conf设置一个简单的反向代理~

    #负载均衡设置
    upstream domain {
        server localhost:8080;
        server localhost:8081;
    }
    #代理服务器设置
    server {
        listen 8090;
        server_name test;
        location / {
            proxy_pass http://domain;   #负载均衡设置,请求会被均匀分配到80808081两个端口
            proxy_set_header Host $host:$server_port;
        }
    }
    #8080端口服务
    server {
        listen 8080;
        server_name up1;
        location / {
            root   data/up1;
            index   up1index.html;
        }
    }
    #8081端口服务
     server {
            listen 8081;
            server_name up2;
            location / {
                root   data/up2;
                index   up2index.html;
            }
        }

reload配置文件

/usr/local/nginx/sbin/nginx -s reload

打开浏览器输入相应的uri,可以看到,发到8090端口的请求会被均匀打到8080和8081两个端口的服务上面,说明我们的配置生效了。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值