Settu upp og settu saman „Nginx 1.10.0“ (stöðug útgáfa) frá heimildum í RHEL/CentOS 7.0


Nginx er ört vaxandi vefþjónn í dag á almennum netþjónum sem snúa að netþjónum vegna ókeypis opins uppspretta mát líkans, afkastamikils, stöðugleika, einfaldra stillingaskráa, ósamstilltra arkitektúrs (atburðadrifinn) og lítillar auðlinda sem þarf að hlaupa.

  1. Lágmarksuppsetning RHEL 7.0
  2. Virk RedHat áskrift og geymslur á RHEL 7.0

  1. Lágmarksuppsetning á CentOS 7.0

  1. Stilltu fasta IP tölu á RHEL/CentOS 7.0

Þessi kennsla mun leiðbeina þér um að setja upp nýjustu stöðugu útgáfuna af Nginx 1.10.0 á Red Hat Enterprise eða CentOS 7 frá heimildum, vegna þess að opinberir RHEL/CentOS 7 geymsluspeglar bjóða ekki upp á tvöfaldan pakka. Ef þú vilt forðast uppsetningu heimilda geturðu bætt við opinberri Nginx geymslu og sett upp tvöfalda pakkann (tiltækar útgáfur eru 1.9.x) með hjálp Yum Package Manager eins og sýnt er:

Til að virkja nginx opinbera yum geymslu fyrir RHEL/CentOS 7 skaltu búa til skrá /etc/yum.repos.d/nginx.repo með eftirfarandi innihaldi:

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

Skiptu út \centos fyrir rhel, allt eftir dreifingunni sem þú ert að nota og settu upp nginx með yum pakkastjóra eins og sýnt er:

# yum install nginx

Mikilvægt: Vinsamlegast athugið að eftirfarandi opinberar nginx yum geymslur hér að ofan munu gefa þér eldri útgáfu af nginx, ef þú vilt virkilega smíða nýjustu útgáfuna af Nginx, þá legg ég til að þú fylgir uppsetningu uppruna eins og sýnt er hér að neðan.

Að nota heimildasöfnun og uppsetningu hefur nokkra kosti, vegna þess að þú getur sett upp nýjustu útgáfuna sem til er, þú getur lagað Nginx stillingar með því að bæta við eða fjarlægja einingar, breyta uppsetningarkerfisleið eða öðrum mikilvægum stillingum, með öðrum orðum, þú hefur fullkomin stjórn á uppsetningarferlinu.

Skref 1: Hladdu niður, settu saman og settu upp Nginx

1. Áður en þú byrjar Nginx söfnun og uppsetningarferli skaltu ganga úr skugga um að þú hafir C/C++ þýðanda, PCRE (Perl Compatible Regular Expressions), Zlib þjöppunarsafn og OpenSSL (ef þú ætlar að keyra Nxing með SSL stuðningi) pakka uppsettir á vélinni þinni með því að gefa út eftirfarandi skipun.

# yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.net.in
 * extras: centos.mirror.net.in
 * updates: centos.mirror.net.in
Package 1:make-3.82-21.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.8.5-4.el7 will be installed
--> Processing Dependency: libgomp = 4.8.5-4.el7 for package: gcc-4.8.5-4.el7.x86_64
--> Processing Dependency: cpp = 4.8.5-4.el7 for package: gcc-4.8.5-4.el7.x86_64
--> Processing Dependency: libgcc >= 4.8.5-4.el7 for package: gcc-4.8.5-4.el7.x86_64
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-4.el7.x86_64
--> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.5-4.el7.x86_64
--> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.5-4.el7.x86_64
---> Package gcc-c++.x86_64 0:4.8.5-4.el7 will be installed
--> Processing Dependency: libstdc++-devel = 4.8.5-4.el7 for package: gcc-c++-4.8.5-4.el7.x86_64
--> Processing Dependency: libstdc++ = 4.8.5-4.el7 for package: gcc-c++-4.8.5-4.el7.x86_64
---> Package openssl-devel.x86_64 1:1.0.1e-51.el7_2.4 will be installed
--> Processing Dependency: openssl-libs(x86-64) = 1:1.0.1e-51.el7_2.4 for package: 1:openssl-devel-1.0.1e-51.el7_2.4.x86_64
--> Processing Dependency: krb5-devel(x86-64) for package: 1:openssl-devel-1.0.1e-51.el7_2.4.x86_64
---> Package pcre-devel.x86_64 0:8.32-15.el7 will be installed
--> Processing Dependency: pcre(x86-64) = 8.32-15.el7 for package: pcre-devel-8.32-15.el7.x86_64
---> Package zlib-devel.x86_64 0:1.2.7-15.el7 will be installed
--> Processing Dependency: zlib = 1.2.7-15.el7 for package: zlib-devel-1.2.7-15.el7.x86_64
...

2. Farðu nú á Nginx opinbera síðu og gríptu nýjustu Stable útgáfuna (nginx 1.10.0) sem er tiltæk með wget skipuninni, dragðu út TAR skjalasafnið og farðu inn í Nginx útdráttarskrána með því að nota eftirfarandi skipana röð.

# wget http://nginx.org/download/nginx-1.10.0.tar.gz
# tar xfz nginx-1.10.0.tar.gz
# cd nginx-1.10.0/
# ls -all
--2016-03-21 09:30:15--  http://nginx.org/download/nginx-1.10.0.tar.gz
Resolving nginx.org (nginx.org)... 206.251.255.63, 95.211.80.227, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|206.251.255.63|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 908954 (888K) [application/octet-stream]
Saving to: ‘nginx-1.10.0.tar.gz’

100%[=====================================================================================================================================================>] 9,08,954    81.0KB/s   in 11s    

2016-03-21 09:30:27 (77.4 KB/s) - ‘nginx-1.10.0.tar.gz’ saved [908954/908954]

3. Næsta skref er að sérsníða Nginx uppsetningarferli. Notaðu stillinga skrána til að sjá stillingarvalkosti og einingar sem þarf fyrir samansafnið þitt með því að nota eftirfarandi skipun og vertu viss um að þú sért í nginx-1.6.0/ slóð.

# ./configure --help
-help                             print this message

  --prefix=PATH                      set installation prefix
  --sbin-path=PATH                   set nginx binary pathname
  --modules-path=PATH                set modules path
  --conf-path=PATH                   set nginx.conf pathname
  --error-log-path=PATH              set error log pathname
  --pid-path=PATH                    set nginx.pid pathname
  --lock-path=PATH                   set nginx.lock pathname

  --user=USER                        set non-privileged user for
                                     worker processes
  --group=GROUP                      set non-privileged group for
                                     worker processes

  --build=NAME                       set build name
  --builddir=DIR                     set build directory

  --with-select_module               enable select module
  --without-select_module            disable select module
  --with-poll_module                 enable poll module
  --without-poll_module              disable poll module

  --with-threads                     enable thread pool support

  --with-file-aio                    enable file AIO support
  --with-ipv6                        enable IPv6 support

  --with-http_ssl_module             enable ngx_http_ssl_module
  --with-http_v2_module              enable ngx_http_v2_module
...

4. Nú er kominn tími til að setja saman Nginx með sérstökum stillingum þínum og virkum eða óvirkum einingum. Fyrir þessa kennslu voru eftirfarandi einingar og forskriftir notaðar, en þú getur lagað samantektina að því sem hentar þínum þörfum.

  1. –user=nginx –group=nginx => kerfisnotandi og hópur sem Nginx mun keyra sem.
  2. –prefix=/etc/nginx => skrá fyrir netþjónaskrár (nginx.conf skrá og aðrar stillingarskrár) – sjálfgefið er /usr/local/nginx skrá.
  3. –sbin-path=/usr/sbin/nginx => Staðsetning Nginx keyranlegrar skráar.
  4. –conf-path=/etc/nginx/nginx.conf => setur nafnið fyrir nginx.conf stillingarskrána – þú getur breytt henni.
  5. –error-log-path=/var/log/nginx/error.log => stillir staðsetningu Nginx villuskrár.
  6. –http-log-path=/var/log/nginx/access.log => stillir staðsetningu Nginx aðgangsskrár.
  7. –pid-path=/var/run/nginx.pid => setur nafn á auðkennisskrá aðalferlisins.
  8. –lock-path=/var/run/nginx.lock => setur nafnið fyrir Nginx læsa skrá.
  9. –with-http_ssl_module => gerir kleift að byggja upp HTTPS eininguna – ekki sjálfgefið byggð og krefst OpenSSL bókasafns.
  10. –with-pcre => setur slóðina að upptökum PCRE bókasafnsins – ekki sjálfgefið byggt og krefst PCRE bókasafns.

Til að skoða lista yfir allar Nginx einingar, farðu á Nginx Wiki vefsíðu á http://wiki.nginx.org/Modules.

Ef þú þarft ekki sérstaka einingu uppsetta á Nginx geturðu slökkt á henni með eftirfarandi skipun.

--without-module_name

Byrjaðu nú að setja saman Nginx með því að gefa út eftirfarandi skipun, sem mun nota allar stillingar og einingar sem fjallað er um hér að ofan (vertu viss um að skipunin haldist á einni línu).

# ./configure --user=nginx --group=nginx --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_ssl_module --with-pcre
checking for OS
 + Linux 3.10.0-229.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 
checking for gcc -pipe switch ... found
checking for -Wl,-E switch ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
checking for gcc builtin 64 bit byteswap ... found
checking for unistd.h ... found
checking for inttypes.h ... found
checking for limits.h ... found
checking for sys/filio.h ... not found
checking for sys/param.h ... found
checking for sys/mount.h ... found
checking for sys/statvfs.h ... found
checking for crypt.h ... found
checking for Linux specific features
checking for epoll ... found
checking for EPOLLRDHUP ... found
checking for O_PATH ... found
checking for sendfile() ... found
checking for sendfile64() ... found
checking for sys/prctl.h ... found
checking for prctl(PR_SET_DUMPABLE) ... found
checking for sched_setaffinity() ... found
checking for crypt_r() ... found
checking for sys/vfs.h ... found
checking for poll() ... found
checking for /dev/poll ... not found
...

5. Eftir að samantektarferlið hefur sannreynt öll kerfis nauðsynleg tól eins og GNU C þýðanda, PCRE og OpenSSL bókasöfn, býr það til make.conf skrána og gefur út samantekt yfir allar stillingar.

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1: using OpenSSL library
  + using system zlib library

  nginx path prefix: "/etc/nginx"
  nginx binary file: "/usr/sbin/nginx"
  nginx modules path: "/etc/nginx/modules"
  nginx configuration prefix: "/etc/nginx"
  nginx configuration file: "/etc/nginx/nginx.conf"
  nginx pid file: "/var/run/nginx.pid"
  nginx error log file: "/var/log/nginx/error.log"
  nginx http access log file: "/var/log/nginx/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

6. Síðasta skrefið er að búa til tvöfaldana með því að nota make skipunina, sem getur tekið nokkurn tíma að klára, allt eftir auðlindum vélarinnar, og setja upp Nginx á vélinni þinni með make install skipun.

Gættu þess að gera uppsetningu krefst rótarréttinda til að framkvæma uppsetninguna, þannig að ef þú ert ekki skráður inn með rótarreikningi skaltu nota réttindanotanda með sudo.

# make
# make install
make -f objs/Makefile
make[1]: Entering directory `/root/nginx-1.10.0'
make[1]: Warning: File `src/core/nginx.h' has modification time 3110036 s in the future
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/nginx.o \
	src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_log.o \
	src/core/ngx_log.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_palloc.o \
	src/core/ngx_palloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_array.o \
	src/core/ngx_array.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_list.o \
	src/core/ngx_list.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_hash.o \
	src/core/ngx_hash.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_buf.o \
	src/core/ngx_buf.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_queue.o \
...
make -f objs/Makefile install
make[1]: Entering directory `/root/nginx-1.10.0'
make[1]: Warning: File `src/core/nginx.h' has modification time 3109935 s in the future
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/nginx.o \
	src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_log.o \
	src/core/ngx_log.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_palloc.o \
	src/core/ngx_palloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_array.o \
	src/core/ngx_array.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_list.o \
	src/core/ngx_list.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_hash.o \
	src/core/ngx_hash.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_buf.o \
	src/core/ngx_buf.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_queue.o \
...

Skref 2: Klipptu Nginx og búðu til INIT forskrift

7. Eftir að uppsetningarferlinu er lokið með góðum árangri bættu nginx kerfisnotanda við (með /etc/nginx/ sem heimaskrá og án gildrar skel), notandanum sem Nginx mun keyra eins og með því að gefa út eftirfarandi skipun.

# useradd -d /etc/nginx/ -s /sbin/nologin nginx

8. Vegna þess að við samantektarferlið höfðum við tilgreint að Nginx mun keyra frá nginx kerfisnotanda, opnaðu nginx.conf skrána og breyttu notandayfirlýsingunni í nginx.

# nano /etc/nginx/nginx.conf

Hér finnurðu og breyttu notanda og, einnig, rótstaðsetningaryfirlýsingum, með eftirfarandi valkostum.

user nginx;
location / {
                root /srv/www/html;
                autoindex on;
                index index.html index.htm;

9. Áður en þú byrjar Nginx skaltu ganga úr skugga um að þú hafir búið til rótarslóð vefskjalsins, byrjaðu síðan nginx með því að nota eftirfarandi skipun.

# mkdir -p /srv/www/html
# /usr/sbin/nginx

Ef þú vilt athuga hvort Nginx sé í gangi með því að nota skellínuna þína skaltu keyra netstat skipunina til að staðfesta hlustunartengingar.

# netstat -tulpn | grep nginx

10. Til að staðfesta það frá ytra kerfi skaltu bæta við eldveggsreglu til að opna tengingu við utan á Port 80, opna vafra og beina vefslóðinni á IP tölu netþjónsins á http://server_IP .

# firewall-cmd --add-service=http  ## For on-fly rule
# firewall-cmd --permanent --add-service=http  ## For permanent rule
# systemctl restart firewalld

11. Til að stjórna Nginx ferli notaðu eftirfarandi skipanir.

  1. nginx -V = sýnir Nginx einingar og stillingar
  2. nginx -h = hjálparvalkostir
  3. nginx = hefja Nginx ferli
  4. nginx -s stop = stöðva Nginx ferli
  5. nginx -s reload = endurhlaða Nginx ferli

# nginx -V
nginx version: nginx/1.10.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_ssl_module --with-pcre

12. Ef þú þarft að stjórna Nginx púkunarferli í gegnum init RHEL/CentOS forskrift, búðu til eftirfarandi nginx skrá á /etc/init.d/ kerfisslóð, og, þá geturðu notað service eða systemctl skipanir til að stjórna ferlinu.

# nano /etc/init.d/nginx

Bættu við eftirfarandi skráarefni.

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#

# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# pidfile:     /var/run/nginx.pid
# user:        nginx

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"
lockfile=/var/run/nginx.lock

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
   *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

13. Eftir að Nginx init skráin er búin til skaltu bæta við framkvæmdaheimildum og stjórna púknum með því að nota skipanavalkostina hér að neðan.

# chmod +x /etc/init.d/nginx
# service nginx start|stop|restart|reload|force_reload|configtest|condrestart
# systemctl start|stop|restart nginx

14. Ef þú þarft að virkja Nginx kerfisbundið skaltu nota eftirfarandi skipun til að byrja við ræsingu.

# chkconfig nginx on

OR

# systemctl enable nginx

Það er allt og sumt! Nú hefurðu nýjustu útgáfuna af Nginx uppsett á RHEL/CentOS 7 kerfinu þínu. Í næstu kennslu mun ég ræða hvernig á að setja upp og virkja PHP-FPM vinnslustjóra þó Nginx FastCGI Gateway.

Lestu einnig: Fullkominn leiðarvísir til að tryggja, herða og bæta árangur Nginx vefþjóns