Installa u Ikkompila Nginx 1.10.0 (Rilaxx Stabbli) minn Sorsi f'RHEL/CentOS 7.0
Nginx huwa l-aktar Webserver li qed jikber b'rata mgħaġġla llum fuq servers li jiffaċċjaw l-internet pubbliku minħabba l-mudell modulari b'sors miftuħ b'xejn tiegħu, prestazzjoni għolja, stabbiltà, fajls ta' konfigurazzjonijiet sempliċi, arkitettura asinkronika (mmexxija mill-avvenimenti) u riżorsi baxxi meħtieġa biex tmexxi.
- Installazzjoni Minima ta' RHEL 7.0
- Abbonament u Repożitorji Attivi RedHat fuq RHEL 7.0
- Installazzjoni Minima ta' CentOS 7.0
- Issettja Indirizz IP Statiku fuq RHEL/CentOS 7.0
Dan it-tutorja jiggwidak dwar l-installazzjoni tal-aħħar verżjoni stabbli ta 'Nginx 1.10.0 fuq Red Hat Enterprise jew CentOS 7 minn sorsi, minħabba li l-mirja tar-repożitorji uffiċjali RHEL/CentOS 7 ma jipprovdux pakkett binarju. Jekk trid tevita l-installazzjoni tas-sorsi tista 'żżid repożitorju uffiċjali ta' Nginx u tinstalla l-pakkett binarju (verżjonijiet disponibbli huma 1.9.x) bl-għajnuna ta 'Yum Package Manager kif muri:
Biex tippermetti r-repożitorju uffiċjali ta' nginx yum għal RHEL/CentOS 7, oħloq fajl /etc/yum.repos.d/nginx.repo bil-kontenut li ġej:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1
Ibdel \centos b'rhel, skont id-distribuzzjoni li qed tuża u installa nginx mal-maniġer tal-pakketti yum kif muri:
# yum install nginx
Importanti: Jekk jogħġbok innota, li ssegwi r-repożitorji uffiċjali ta 'nginx yum ta' hawn fuq jagħtik verżjoni eqdem ta 'nginx, jekk verament trid tibni l-aktar verżjoni riċenti ta' Nginx, allura nissuġġerik li ssegwi l-installazzjoni tas-sors kif muri hawn taħt.
L-użu ta 'sorsi ta' kumpilazzjoni u installazzjoni għandu xi benefiċċji, minħabba l-fatt li tista 'tinstalla l-aħħar verżjoni disponibbli, tista' ttejjeb il-konfigurazzjoni ta 'Nginx billi żżid jew tneħħi moduli, tibdel il-mogħdija tas-sistema ta' installazzjoni, jew settings importanti oħra, fi kliem ieħor, għandek kontroll sħiħ fuq il-proċess ta 'installazzjoni.
Pass 1: Niżżel, Ikkompila u Installa Nginx
1. Qabel ma tibda proċess ta 'kumpilazzjoni u installazzjoni ta' Nginx kun żgur li għandek kompilatur C/C++, PCRE (Espressjonijiet Regolari Kompatibbli Perl), Zlib Librerija ta 'Kompressjoni u OpenSSL (jekk biħsiebek tħaddem Nxing b'appoġġ SSL) pakketti installati fuq il-magna tiegħek billi toħroġ il-kmand li ġej.
# 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. Issa mur fil-paġna uffiċjali ta 'Nginx u aqbad l-aħħar verżjoni Stabbli (nginx 1.10.0) disponibbli billi tuża l-kmand wget, iġbed l-arkivju TAR u daħħal id-direttorju estratt ta' Nginx, billi tuża is-sekwenza tal-kmandi li ġejja.
# 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. Il-pass li jmiss huwa jippersonalizza l-proċess ta 'installazzjoni ta' Nginx. Uża l-fajl konfigura biex tara l-għażliet ta' konfigurazzjoni u l-moduli meħtieġa għall-proċess ta' kumpilazzjoni tiegħek billi tuża l-kmand li ġej u kun żgur li qiegħed fil-passaġġ nginx-1.6.0/.
# ./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. Issa wasal iż-żmien li tikkumpila Nginx bil-konfigurazzjonijiet speċifiċi tiegħek u l-moduli attivati jew diżattivati. Għal dan it-tutorja, il-moduli u l-ispeċifikazzjonijiet li ġejjin fejn jintużaw, iżda tista 'ttejjeb il-kumpilazzjoni għal dak li jaqbel mal-bżonnijiet tiegħek.
- –user=nginx –group=nginx => utent tas-sistema u grupp li Nginx se jaħdem bħala.
- –prefix=/etc/nginx => direttorju għall-fajls tas-server (fajl nginx.conf u fajls ta' konfigurazzjoni oħra) – id-direttorju default huwa /usr/local/nginx.
- –sbin-path=/usr/sbin/nginx => Post tal-fajl eżekutibbli Nginx.
- –conf-path=/etc/nginx/nginx.conf => jissettja l-isem għall-fajl tal-konfigurazzjoni nginx.conf – tista’ tibdelha.
- –error-log-path=/var/log/nginx/error.log => jistabbilixxi l-lokazzjoni tal-fajl tal-log tal-iżbalji Nginx.
- –http-log-path=/var/log/nginx/access.log => jistabbilixxi l-lokazzjoni tal-fajl tal-log tal-aċċess Nginx.
- –pid-path=/var/run/nginx.pid => jistabbilixxi l-isem għall-fajl ID tal-proċess prinċipali.
- –lock-path=/var/run/nginx.lock => jistabbilixxi l-isem għall-fajl tal-lock Nginx.
- –with-http_ssl_module => jippermetti l-bini tal-modulu HTTPS – mhux mibni b'mod awtomatiku u jeħtieġ librerija OpenSSL.
- –with-pcre => jistabbilixxi l-mogħdija għas-sorsi tal-librerija PCRE – mhux mibnija awtomatikament u teħtieġ librerija PCRE.
Biex tara lista tal-moduli Nginx kollha żur il-paġna web Nginx Wiki fuq http://wiki.nginx.org/Modules.
Jekk m'għandekx bżonn ta 'modulu speċifiku installat fuq Nginx tista' tiddiżattivah billi tuża l-kmand li ġej.
--without-module_name
Issa ibda tiġbor Nginx billi toħroġ il-kmand li ġej, li se juża l-konfigurazzjonijiet u l-moduli kollha diskussi hawn fuq (kun żgur li l-kmand jibqa 'fuq linja waħda).
# ./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. Wara li l-proċess tal-kumpilazzjoni jivverifika l-utilitajiet kollha meħtieġa tas-sistema bħall-kompilatur GNU C, il-libreriji PCRE u OpenSSL, joħloq il-fajl make.conf u joħroġ sommarju tal-konfigurazzjonijiet kollha.
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. L-aħħar pass huwa li tibni l-binarji billi tuża kmand make, li jista 'jieħu ftit ħin biex jintemm skond ir-riżorsi tal-magna tiegħek, u tinstalla Nginx fis-sistema tiegħek b'make install kmand.
Oqgħod attent li make install teħtieġ privileġġi ta' l-għeruq biex twettaq l-installazzjoni, allura jekk m'intix illoggjat b'kont root uża utent ta' privileġġ b'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 \ ...
Pass 2: Tweak Nginx u Oħloq INIT Script
7. Wara li l-proċess ta 'installazzjoni jkun spiċċa b'suċċess żid nginx utent tas-sistema (b'/etc/nginx/ bħala direttorju tad-dar tiegħu u mingħajr qoxra valida), l-utent li Nginx se taħdem bħal billi toħroġ il-kmand li ġej.
# useradd -d /etc/nginx/ -s /sbin/nologin nginx
8. Minħabba li fil-proċess ta' kumpilazzjoni konna speċifikajna li Nginx se jibda mill-utent tas-sistema nginx, iftaħ il-fajl nginx.conf u biddel id-dikjarazzjoni tal-utent għal nginx.
# nano /etc/nginx/nginx.conf
Hawnhekk issib u tibdel l-utent u, ukoll, iddokumenta dikjarazzjonijiet tal-lok tal-għeruq, bl-għażliet li ġejjin.
user nginx; location / { root /srv/www/html; autoindex on; index index.html index.htm;
9. Qabel ma tibda Nginx, aċċerta li ħloqt il-mogħdija ta 'l-għerq tad-dokument tal-web, imbagħad ibda nginx billi tuża l-kmand li ġej.
# mkdir -p /srv/www/html # /usr/sbin/nginx
Jekk trid tiċċekkja jekk Nginx hux qed jaħdem billi tuża l-pront tal-qoxra tiegħek, ħaddem il-kmand netstat biex tivverifika l-konnessjonijiet tas-smigħ.
# netstat -tulpn | grep nginx
10. Biex tivverifikaha minn sistema remota, żid regola tal-Firewall biex tiftaħ konnessjoni ma' barra fuq il-Port 80, iftaħ browser u dirett URL għall-Indirizz IP tas-server tiegħek fuq 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. Biex timmaniġġja l-proċess Nginx uża l-kmandi li ġejjin.
- nginx -V = juri moduli u konfigurazzjonijiet Nginx
- nginx -h = għażliet ta’ għajnuna
- nginx = tibda proċess Nginx
- nginx -s stop = twaqqaf il-proċess Nginx
- nginx -s reload = reload proċess Nginx
# 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. Jekk għandek bżonn timmaniġġja l-proċess tad-daemon Nginx permezz ta 'skript init RHEL/CentOS, oħloq il-fajl nginx li ġej fuq il-mogħdija tas-sistema /etc/init.d/, u, imbagħad, tista' tuża kmandi ta' servizz jew systemctl biex tmexxi l-proċess.
# nano /etc/init.d/nginx
Żid il-kontenut tal-fajl li ġej.
#!/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. Wara li jinħoloq il-fajl init Nginx, waħħal il-permessi tal-eżekuzzjonijiet u mmaniġġja d-daemon billi tuża l-għażliet ta 'kmand hawn taħt.
# chmod +x /etc/init.d/nginx # service nginx start|stop|restart|reload|force_reload|configtest|condrestart # systemctl start|stop|restart nginx
14. Jekk għandek bżonn tattiva Nginx fis-sistema kollha uża l-kmand li ġej biex tibda fil-ħin tal-ibbutjar.
# chkconfig nginx on OR # systemctl enable nginx
Dak kollox! Issa għandek l-aħħar verżjoni ta 'Nginx installata fuq is-sistema RHEL/CentOS 7 tiegħek. Fit-tutorja li jmiss ser niddiskuti kif ninstalla u nippermetti l-maniġer tal-proċess PHP-FPM għalkemm Nginx FastCGI Gateway.
Aqra wkoll: Il-Gwida Ultimate biex Tiżgura, Tibbies u Ttejjeb il-Prestazzjoni ta 'Nginx Web Server