Nginx是一款自由的、開源的、高性能的HTTP服務器和反向代理服務器;同時也是一個IMAP、POP三、SMTP代理服務器;Nginx能夠做爲一個HTTP服務器進行網站的發佈處理,另外Nginx能夠做爲反向代理進行負載均衡的實現。nginx
更多關於Nginx介紹以及做用請自行百度c++
[root@nginx ~]# yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y
注:進入Nginx安裝包下載地址複製您想要的版本連接,我這裏以Nginx-1.14.0爲例。vim
[root@nginx~]# cd /usr/local/src/ [root@ nginx src]# wget http://nginx.org/download/nginx-1.14.0.tar.gz
做用:後端作負載均衡解決session sticky問題。後端
[root@nginx src]# wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
做用:將ngx_cache_purge編譯到到Nginx中,用來清除指定URL的緩存。緩存
(官網地址:http://labs.frickle.com/nginx_ngx_cache_purge/)bash
[root@nginx src]# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
[root@nginx ~]# groupadd www [root@nginx ~]# useradd -g www www -s /sbin/nologin
注:建立nginx運行用戶www並加入到www組,不容許www用戶直接登陸系統。服務器
[root@nginx src]# tar zxf nginx-1.14.0.tar.gz
# 注意3.2的可選項 [root@nginx src]# tar zxf ngx_cache_purge-2.3.tar.gz
# 注意3.3的可選項 [root@nginx src]# tar zxf nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz [root@nginx src]# cd nginx-1.14.0/
注:‘=’號後面是本身安裝包的絕對路徑,和配置文件路徑。session
[root@nginx-master nginx-1.14.0]# ./configure --prefix=/usr/local/nginx > --user=www --group=www > --with-http_stub_status_module > --with-http_realip_module --with-http_ssl_module > --with-http_gzip_static_module > --http-client-body-temp-path=/var/tmp/nginx/client > --http-proxy-temp-path=/var/tmp/nginx/proxy > --http-fastcgi-temp-path=/var/tmp/nginx/fcgi
# 注意3.2的可選項 > --with-pcre --add-module=/usr/local/src/ngx_cache_purge-2.3
# 注意3.3的可選項
> --add-module=/usr/local/src/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
執行完編譯後:負載均衡
[root@nginx nginx-1.14.0]# make && make install
注:Nginx的全部模塊必須在編譯的時候添加,不能再運行的時候動態加載。性能
[root@nginx nginx-1.14.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@nginx nginx-1.14.0]# nginx -t
若是出現如下問題:
須要建立此目錄:
[root@nginx nginx-1.14.0]# mkdir -p /var/tmp/nginx/client
原始管理nginx的命令,不是很方便!
[root@nginx-master ~]# nginx 啓動nginx [root@nginx-master ~]# nginx -s reload 重啓nginx [root@nginx-master ~]# nginx -s stop 中止nginx
接下來設置經常使用的管理命令:
1) 建立開機啓動命令腳本文件:
[root@nginx ~]# vim /etc/init.d/nginx
2) 在這個Nginx文件中插入一下啓動腳本代碼:
-----------------------------------腳本以下 ----------------------------------- #! /bin/bash # chkconfig: - 85 15 PATH=/usr/local/nginx DESC="nginx daemon" NAME=nginx DAEMON=$PATH/sbin/$NAME CONFIGFILE=$PATH/conf/$NAME.conf PIDFILE=$PATH/logs/$NAME.pid scriptNAME=/etc/init.d/$NAME set -e [ -x "$DAEMON" ] || exit 0 do_start() { $DAEMON -c $CONFIGFILE || echo -n "nginx already running" } do_stop() { $DAEMON -s stop || echo -n "nginx not running" } do_reload() { $DAEMON -s reload || echo -n "nginx can't reload" } case "$1" in start) echo -n "Starting $DESC: $NAME" do_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." ;; reload|graceful) echo -n "Reloading $DESC configuration..." do_reload echo "." ;; restart) echo -n "Restarting $DESC: $NAME" do_stop do_start echo "." ;; *) echo "Usage: $scriptNAME {start|stop|reload|restart}" >&2 exit 3 ;; esac exit 0
[root@nginx ~]# cd /etc/init.d/
3) 設置全部人都有對這個啓動腳本nginx文件的執行權限:
[root@nginx init.d]# chmod a+x nginx
4) 把nginx加入系統服務中:
[root@nginx init.d]# chkconfig --add nginx
5) 把服務設置爲開機啓動:
[root@nginx init.d]# chkconfig nginx on
注:reboot重啓系統生效!
6) 重啓後,就能夠執行以下命令進行管理了
systemctl start nginx.service # 啓動nginx
systemctl stop nginx.service # 結束nginx
systemctl restart nginx.service # 重啓nginx
systemctl enable nginx.service # 開機啓動
1) 若是以前安裝過httpd,側須要先卸載httpd,不然啓動失敗,除非修改Nginx啓動端口。
[root@nginx ~]# yum remove httpd -y
2) 若是仍是啓動不來,再試試這個方法:殺死Nginx相關的進程以後,啓動Nginx
[root@nginx ~]#ps -A | grep nginx [root@nginx ~]#kill -9 pid1 [root@nginx ~]#kill -9 pid2
3) 若是仍是不行,查看日誌信息解決。
注:後續繼續更新Nginx優化及反向代理功能!