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
這篇文章寫得很好