Nginx 入門教程

Nginx 編譯安裝

Nginx是一個性能出色的http服務器和反向代理服務器,佔內存小,併發能力強,處理靜態頁面能力好。

Nginx 由內核和模塊組成。

相對於 Apache 優點

  • 高併發響應性能非常好
  • 反向代理性能非常強,(可用於負載均衡)
  • 內存和 CPU 佔有率低
  • 對後端服務有健康檢查功能
  • 支持 PHP cgi 方式和 fastcgi 方式
  • 配置代碼簡潔、容易上手

系統環境


  • CentOS 6.8
  • Nginx 1.12.0
  • pcre 支持正則
  • openssl

我們只將Nginx用於純 Web 服務環境

安裝依賴包

$ yum install -y gcc gcc-c++ make pcre-devel openssl-devel
  • pcre 正則處理需要
  • gcc 編譯需要
  • openssl 安全鏈接需要

編譯與安裝


從 Nginx 官網下載源碼包並解壓

$ cd /usr/local
$ wget http://nginx.org/download/nginx-1.12.0.tar.gz
$ tar xzvf nginx-1.12.0.tar.gz

進入 Nginx 源碼包目錄然後開始編譯、安裝位置一般選 /usr/local 爲了方便以後的配置文件修改

$ cd nginx-1.12.0
$ ./configure --prefix=/usr/local/nginx #配置時如果有錯誤一般都是缺少了什麼開發包,yum裝一下就行了

開始 Nginx 編譯和安裝

$ make && make install

手動啓動 Nginx 服務

$ cd /usr/local/nginx
$ ./sbin/nginx -t      //檢查下 Nginx 配置文件是否有語法問題
$ ./sbin/nginx

Nginx 源碼安裝完成後默認不會註冊爲系統服務,所以需手工添加系統服務腳本。

CentOS 6.8 在 /etc/init.d 目錄下新建 nginx 文件,並更改權限即可

$ vim /etc/ini.d/nginx
下面的、填一下內容(根據自己實際情況修改)
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# this script create it by caffreyxin at 2007.10.15.
# it is v.0.0.1 version.
# if you find any errors on this scripts, please contact wylbjia.
# and send mail to wylbjia at [email protected]
#
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
#              It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf

nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid

RETVAL=0
prog="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

[ -x $nginxd ] || exit 0


# Start nginx daemons functions.
start() {

    if [ -e $nginx_pid ];then
        echo "nginx already running...."
        exit 1
    fi

    echo -n $"Starting $prog: "
    daemon $nginxd -c ${nginx_config}
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
    return $RETVAL
}


# Stop nginx daemons functions.
stop() {
    echo -n $"Stopping $prog: "
    killproc $nginxd
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}


# reload nginx service functions.
reload() {

    echo -n $"Reloading $prog: "
    #kill -HUP `cat ${nginx_pid}`
    killproc $nginxd -HUP
    RETVAL=$?
    echo

}

# See how we were called.
case "$1" in
start)
        start
        ;;

stop)
        stop
        ;;

reload)
        reload
        ;;

restart)
        stop
        start
        ;;

status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $"Usage: $prog {start|stop|restart|reload|status|help}"
        exit 1
esac

exit $RETVAL

修改文件權限、設置爲開機啓動

$ chmod 755 /etc/init.d/nginx
$ chkconfig nginx on

下面就可以使用Service命令管理 Nginx 了

$ service nginx start | stop | reload

下面在瀏覽器輸入 IP 就可以看到 Nginx 頁面了,如果沒有記得關閉防火牆和 Selinux

CentOS7.2/Ubuntu 下 Nginx 開機啓動

1.在系統服務目錄裏創建 nginx.service 文件

vi /lib/systemd/system/nginx.service

內容如下

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target
##服務說明
[Unit]:服務的說明
Description:描述服務
After:描述服務類別
[Service]服務運行參數的設置
Type=forking是後臺運行的形式
ExecStart爲服務的具體運行命令
ExecReload爲重啓命令
ExecStop爲停止命令
PrivateTmp=True表示給服務分配獨立的臨時空間
注意:[Service]的啓動、重啓、停止命令全部要求使用絕對路徑
[Install]運行級別下服務安裝的相關設置,可設置爲多用戶,即系統運行級別爲3

2.設置開機啓動

systemctl enable nginx

systemctl start/stop/restart/status nginx

systemctl list-units --type=service

Ngin的頁面亂碼解決

  • 在server段里加一下兩行

    default_type 'text/html';
    charset utf-8;
    

    然後重啓

Nginx rewrite

http://www.cnblogs.com/xiaoit/p/3991037.html


這篇文章寫得很好

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章