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 · 程序羊
相關文章
相關標籤/搜索