Nginx服务器开箱体验


概述

Nginx是高性能的轻量级WEB服务器,因为其提供HTTP代理和反向代理、负载均衡、缓存等一系列重要特性,从而普遍应用于当今的WEB服务之中,学习其颇有必要。笔者也是从一个初学者开始学习并记录,但愿后续渐渐深刻。html

对了,为何不用Docker来启动Nginx呢?由于不想啊!nginx

注: 本文首发于 My 公众号 CodeSheep ,可 长按扫描 下面的 当心心 来订阅 ↓ ↓ ↓c++

CodeSheep · 程序羊


实验环境

  • CentOS 7.4 64Bit
  • Nginx 1.14.0 稳定版

下载Nginx

wget http://nginx.org/download/nginx-1.14.0.tar.gz
复制代码

安装Nginx

  • 安装第三方库
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
yum -y install pcre-devel
复制代码

安装成功之后能够查看pcre版本: pcre-config —versionweb

查看pcre版本

  • 解压安装包
tar zxvf nginx-1.14.0.tar.gz
复制代码
  • 从configure脚本自动生成Makefile
cd /root/nginx-1.14.0
./configure --prefix=/usr/local/webserver/nginx
复制代码

这里的 —prefix 选项是指定Nginx的安装路径,这里我是指定安装到路径:/usr/local/webserver/nginx编程

  • 编译安装
cd /root/nginx-1.14.0
make && make install
复制代码

编译安装过程以下,直到完成c#

编译安装过程以下

  • 查看Nginx版本
/usr/local/webserver/nginx/sbin/nginx -v
复制代码

查看Nginx版本

  • 查看安装后的目录

总共四个目录:confhtmllogssbin浏览器

查看安装后的目录


启动Nginx

/usr/local/webserver/nginx/sbin/nginx
复制代码

浏览器访问Nginx成功(注意:因为个人机子上80端口被占用了,所以我将Nginx起在81端口上了):缓存

浏览器访问成功


经常使用指令

  • 测试nginx测试文件是否正确
/usr/local/webserver/nginx/sbin/nginx -t
复制代码
  • 指定配置文件启动
/usr/local/webserver/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
复制代码
  • 重启nginx
/usr/local/webserver/nginx/sbin/nginx -s reload            # 从新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen          #重启 Nginx
复制代码
  • 中止nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 中止 Nginx
复制代码

Nginx服务器配置实例与实验

准备配置文件 nginx.conf 以下:bash

// 全局配置
user  nobody  nobody;
worker_processes  3;
error_log  logs/error.log;
pid  logs/nginx.pid;

// events块配置
events {
    use epoll;
    worker_connections  1024;
}

// http块配置
http {
    include  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 logs/access.log main; sendfile on; keepalive_timeout 65; // 虚拟主机1:基于域名codesheep.com server { listen 8088; server_name codesheep; access_log /codesheep/webserver/server1/log/access.log; error_page 404 /404.html; location /server1/location1 { root /codesheep/webserver; index index.server1-location1.htm; } location /server1/location2 { root /codesheep/webserver; index index.server1-location2.htm; } } // 虚拟主机2:基于IP地址:192.168.31.177 server { listen 8089; server_name 192.168.31.177; access_log /codesheep/webserver/server2/log/access.log; error_page 404 /404.html; location /server2/location1 { root /codesheep/webserver; index index.server2-location1.htm; } location /srv2/loc2 { alias /codesheep/webserver/server2/location2/; index index.server2-location2.htm; } location = /404.html { root /codesheep/webserver/; index 404.html; } } } 复制代码

很明显,在上述配置文件中配置了两个虚拟主机:一个 基于域名一个基于IP地址服务器

为了验证该配置的正确性,咱们对照此配置,构建一个与其对应的静态站点,其目录结构以下:

站点结构

如今能够启动Nginx服务器,并在浏览器中进行测试

  • 测试站点server1的访问

server1/location1

server1/location2

这就说明配置文件中虚拟主机1配置生效!

注意:这里域名www.codesheep.com之因此能被解析识别,是由于本地配置了DNS服务器!

  • 测试站点server2的访问

server2/location1

srv2/loc2

这就说明配置文件中虚拟主机2配置生效!


后记

做者更多的SpringBt实践文章在此:


若是有兴趣,也能够抽点时间看看做者一些关于容器化、微服务化方面的文章:


CodeSheep · 程序羊
相关文章
相关标签/搜索