Готовый опыт работы с сервером Nginx

задняя часть сервер Docker Nginx
Готовый опыт работы с сервером Nginx

Обзор

Nginx — это высокопроизводительный легкий веб-сервер. Поскольку он предоставляет ряд важных функций, таких как HTTP-прокси и обратный прокси-сервер, балансировка нагрузки и кэширование, он широко используется в современных веб-сервисах. Его необходимо изучить. Автор тоже начал учиться и записывать с нуля, и надеюсь, что продолжение будет постепенно углубляться.

Кстати, почему бы не запустить Nginx с Docker? Потому что я не хочу!

Примечание:Эта статья была впервые опубликована на моем официальном аккаунтеCodeSheep,МожетНажмитеилисканированиеследующеебудь остороженЗаходи подписывайся ↓ ↓ ↓

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 —version

查看pcre版本

  • Разархивируйте установочный пакет
tar zxvf nginx-1.14.0.tar.gz
  • Автоматически генерировать Makefile из скрипта configure
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

Процесс компиляции и установки выглядит следующим образом, до завершения

编译安装过程如下

  • Проверить версию Nginx
/usr/local/webserver/nginx/sbin/nginx -v

查看Nginx版本

  • Просмотр установленного каталога

Всего существует четыре каталога:conf,html,logs,sbin

查看安装后的目录


Запустить 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следующее:

// 全局配置
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 · 程序羊