Ubuntu安装Nginx
<p>在Ubuntu下安装Nginx有以下方法,但是如果想要安装最新版本的就必须下载源码包编译安装。</p><p><strong>一、基于APT源安装</strong></p>
<div class="cnblogs_code">
<pre>sudo apt-get install nginx</pre>
</div>
<p>安装好的文件位置:</p>
<div class="cnblogs_code">
<pre>/usr/sbin/<span style="color: rgba(0, 0, 0, 1)">nginx:主程序
</span>/etc/<span style="color: rgba(0, 0, 0, 1)">nginx:存放配置文件
</span>/usr/share/<span style="color: rgba(0, 0, 0, 1)">nginx:存放静态文件
</span>/var/log/nginx:存放日志</pre>
</div>
<p> 其实从上面的根目录文件夹可以知道,Linux系统的配置文件一般放在 <span class="cnblogs_code">/etc</span> ,日志一般放在 <span class="cnblogs_code">/var/log</span> ,运行的程序一般放在 <span class="cnblogs_code">/usr/sbin</span> 或者 <span class="cnblogs_code">/usr/bin</span> 。</p>
<p> 当然,如果要更清楚Nginx的配置项放在什么地方,可以打开 <span class="cnblogs_code">/etc/nginx/nginx.conf</span> </p>
<p> 我猜测,Nginx如果指定默认加载 <span class="cnblogs_code">/etc/nginx/nginx.conf</span> 的配置文件。如果要查看加载的是哪个配置文件,可以用这个命令 <span class="cnblogs_code">sudo nginx -t</span> 或者 <span class="cnblogs_code">ps -ef | grep nginx</span> 。</p>
<p> 然后通过这种方式安装的,会自动创建服务,会自动在 <span class="cnblogs_code">/etc/init.d/nginx</span> 新建服务脚本,然后就可以使用 <span class="cnblogs_code">sudo service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}</span> 的命令启动。</p>
<p>脚本如下:</p>
<div class="cnblogs_code"><img id="code_img_closed_47ceab4f-11f3-432b-966d-70a2f63433b1" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_47ceab4f-11f3-432b-966d-70a2f63433b1" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_47ceab4f-11f3-432b-966d-70a2f63433b1" class="cnblogs_code_hide">
<pre>#!/bin/<span style="color: rgba(0, 0, 255, 1)">sh</span><span style="color: rgba(0, 0, 0, 1)">
### BEGIN INIT INFO
# Provides: nginx
# Required</span>-<span style="color: rgba(0, 0, 0, 1)">Start: $local_fs $remote_fs $network $syslog $named
# Required</span>-<span style="color: rgba(0, 0, 0, 1)">Stop: $local_fs $remote_fs $network $syslog $named
# Default</span>-Start: <span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(128, 0, 128, 1)">3</span> <span style="color: rgba(128, 0, 128, 1)">4</span> <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">
# Default</span>-Stop: <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">
# Short</span>-<span style="color: rgba(0, 0, 0, 1)">Description: starts the nginx web server
# Description: starts nginx using start</span>-stop-<span style="color: rgba(0, 0, 0, 1)">daemon
### END INIT INFO
PATH</span>=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/<span style="color: rgba(0, 0, 0, 1)">bin
DAEMON</span>=/usr/sbin/<span style="color: rgba(0, 0, 0, 1)">nginx
NAME</span>=<span style="color: rgba(0, 0, 0, 1)">nginx
DESC</span>=<span style="color: rgba(0, 0, 0, 1)">nginx
# Include nginx defaults </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> available
</span><span style="color: rgba(0, 0, 255, 1)">if</span> [ -r /etc/default/nginx ]; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
. </span>/etc/default/<span style="color: rgba(0, 0, 0, 1)">nginx
</span><span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
STOP_SCHEDULE</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
test </span>-x $DAEMON || exit <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
. </span>/lib/init/vars.<span style="color: rgba(0, 0, 255, 1)">sh</span><span style="color: rgba(0, 0, 0, 1)">
. </span>/lib/lsb/init-<span style="color: rgba(0, 0, 0, 1)">functions
# Try to extract nginx pidfile
PID</span>=$(<span style="color: rgba(0, 0, 255, 1)">cat</span> /etc/nginx/nginx.conf | <span style="color: rgba(0, 0, 255, 1)">grep</span> -Ev <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">^\s*#</span><span style="color: rgba(128, 0, 0, 1)">'</span> | <span style="color: rgba(0, 0, 255, 1)">awk</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">BEGIN { RS="[;{}]" } { if ($1 == "pid") print $2 }</span><span style="color: rgba(128, 0, 0, 1)">'</span> | <span style="color: rgba(0, 0, 255, 1)">head</span> -<span style="color: rgba(0, 0, 0, 1)">n1)
</span><span style="color: rgba(0, 0, 255, 1)">if</span> [ -z <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$PID</span><span style="color: rgba(128, 0, 0, 1)">"</span> ]; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
PID</span>=/run/<span style="color: rgba(0, 0, 0, 1)">nginx.pid
</span><span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> [ -n <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$ULIMIT</span><span style="color: rgba(128, 0, 0, 1)">"</span> ]; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
# Set ulimit </span><span style="color: rgba(0, 0, 255, 1)">if</span> it is set <span style="color: rgba(0, 0, 255, 1)">in</span> /etc/default/<span style="color: rgba(0, 0, 0, 1)">nginx
ulimit $ULIMIT
</span><span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
start_nginx() {
# Start the daemon</span>/<span style="color: rgba(0, 0, 0, 1)">service
#
# Returns:
# </span><span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon has been started
# </span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon was already running
# </span><span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon could not be started
start</span>-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --test > /dev/<span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)"> \
</span>|| return <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
start</span>-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --<span style="color: rgba(0, 0, 0, 1)"> \
$DAEMON_OPTS </span><span style="color: rgba(128, 0, 128, 1)">2</span>>/dev/<span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)"> \
</span>|| return <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
}
test_config() {
# Test the nginx configuration
$DAEMON </span>-t $DAEMON_OPTS >/dev/<span style="color: rgba(0, 0, 255, 1)">null</span> <span style="color: rgba(128, 0, 128, 1)">2</span>>&<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
}
stop_nginx() {
# Stops the daemon</span>/<span style="color: rgba(0, 0, 0, 1)">service
#
# Return
# </span><span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon has been stopped
# </span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon was already stopped
# </span><span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon could not be stopped
# other </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> a failure occurred
start</span>-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --<span style="color: rgba(0, 0, 0, 1)">name $NAME
RETVAL</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">sleep</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$RETVAL</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
reload_nginx() {
# Function that sends a SIGHUP to the daemon</span>/<span style="color: rgba(0, 0, 0, 1)">service
start</span>-stop-daemon --stop --signal HUP --quiet --pidfile $PID --<span style="color: rgba(0, 0, 0, 1)">name $NAME
return </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
}
rotate_logs() {
# Rotate log files
start</span>-stop-daemon --stop --signal USR1 --quiet --pidfile $PID --<span style="color: rgba(0, 0, 0, 1)">name $NAME
return </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
}
upgrade_nginx() {
# Online upgrade nginx executable
# http:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">nginx.org/en/docs/control.html</span>
<span style="color: rgba(0, 0, 0, 1)"> #
# Return
# </span><span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> nginx has been successfully upgraded
# </span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> nginx is not running
# </span><span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">if</span> the pid files were not created on <span style="color: rgba(0, 0, 255, 1)">time</span><span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(128, 0, 128, 1)">3</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> the old master could not be killed
</span><span style="color: rgba(0, 0, 255, 1)">if</span> start-stop-daemon --stop --signal USR2 --quiet --pidfile $PID --name $NAME; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
# Wait </span><span style="color: rgba(0, 0, 255, 1)">for</span> both old and new master to <span style="color: rgba(0, 0, 255, 1)">write</span> their pid <span style="color: rgba(0, 0, 255, 1)">file</span>
<span style="color: rgba(0, 0, 255, 1)">while</span> [ ! -s <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">${PID}.oldbin</span><span style="color: rgba(128, 0, 0, 1)">"</span> ] || [ ! -s <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">${PID}</span><span style="color: rgba(128, 0, 0, 1)">"</span> ]; <span style="color: rgba(0, 0, 255, 1)">do</span><span style="color: rgba(0, 0, 0, 1)">
cnt</span>=`<span style="color: rgba(0, 0, 255, 1)">expr</span> $cnt + <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">`
</span><span style="color: rgba(0, 0, 255, 1)">if</span> [ $cnt -gt <span style="color: rgba(128, 0, 128, 1)">10</span> ]; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 128, 1)">2</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">sleep</span> <span style="color: rgba(128, 0, 128, 1)">1</span>
<span style="color: rgba(0, 0, 255, 1)">done</span><span style="color: rgba(0, 0, 0, 1)">
# Everything is ready, gracefully stop the old master
</span><span style="color: rgba(0, 0, 255, 1)">if</span> start-stop-daemon --stop --signal QUIT --quiet --pidfile <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">${PID}.oldbin</span><span style="color: rgba(128, 0, 0, 1)">"</span> --name $NAME; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 128, 1)">0</span>
<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 128, 1)">3</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 128, 1)">1</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$1</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)">
start)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Starting $DESC</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
start_nginx
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span>
<span style="color: rgba(128, 0, 128, 1)">0</span>|<span style="color: rgba(128, 0, 128, 1)">1</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(128, 0, 128, 1)">2</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(0, 0, 255, 1)">esac</span><span style="color: rgba(0, 0, 0, 1)">
;;
stop)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Stopping $DESC</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
stop_nginx
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span>
<span style="color: rgba(128, 0, 128, 1)">0</span>|<span style="color: rgba(128, 0, 128, 1)">1</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(128, 0, 128, 1)">2</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(0, 0, 255, 1)">esac</span><span style="color: rgba(0, 0, 0, 1)">
;;
restart)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Restarting $DESC</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
# Check configuration before stopping nginx
</span><span style="color: rgba(0, 0, 255, 1)">if</span> ! test_config; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
log_end_msg </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> # Configuration error
exit $</span>?
<span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
stop_nginx
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span>
<span style="color: rgba(128, 0, 128, 1)">0</span>|<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">)
start_nginx
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span>
<span style="color: rgba(128, 0, 128, 1)">0</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(128, 0, 128, 1)">1</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> ;; # Old process is still running
</span>*) log_end_msg <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> ;; # Failed to start
</span><span style="color: rgba(0, 0, 255, 1)">esac</span><span style="color: rgba(0, 0, 0, 1)">
;;
</span>*<span style="color: rgba(0, 0, 0, 1)">)
# Failed to stop
log_end_msg </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
;;
</span><span style="color: rgba(0, 0, 255, 1)">esac</span><span style="color: rgba(0, 0, 0, 1)">
;;
reload</span>|force-<span style="color: rgba(0, 0, 0, 1)">reload)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Reloading $DESC configuration</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
# Check configuration before stopping nginx
#
# This is not entirely correct since the on</span>-<span style="color: rgba(0, 0, 0, 1)">disk nginx binary
# may differ from the </span><span style="color: rgba(0, 0, 255, 1)">in</span>-memory one, but that<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s not common.</span>
<span style="color: rgba(0, 0, 0, 1)"> # We prefer to check the configuration and return an error
# to the administrator.
</span><span style="color: rgba(0, 0, 255, 1)">if</span> ! test_config; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
log_end_msg </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> # Configuration error
exit $</span>?
<span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
reload_nginx
log_end_msg $</span>?<span style="color: rgba(0, 0, 0, 1)">
;;
configtest</span>|<span style="color: rgba(0, 0, 0, 1)">testconfig)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Testing $DESC configuration</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
test_config
log_end_msg $</span>?<span style="color: rgba(0, 0, 0, 1)">
;;
status)
status_of_proc </span>-p $PID <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$DAEMON</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> && exit <span style="color: rgba(128, 0, 128, 1)">0</span> || exit $?<span style="color: rgba(0, 0, 0, 1)">
;;
upgrade)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Upgrading binary</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
upgrade_nginx
log_end_msg $</span>?<span style="color: rgba(0, 0, 0, 1)">
;;
rotate)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Re-opening $DESC log files</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
rotate_logs
log_end_msg $</span>?<span style="color: rgba(0, 0, 0, 1)">
;;
</span>*<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}</span><span style="color: rgba(128, 0, 0, 1)">"</span> >&<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
exit </span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">
;;
</span><span style="color: rgba(0, 0, 255, 1)">esac</span></pre>
</div>
<span class="cnblogs_code_collapse">脚本</span></div>
<p> 还有一个好处,创建好的文件由于放在/usr/sbin目录下,所以能直接在终端中使用nginx命令而无需指定路径。</p>
<p><strong>二、通过源码包编译安装</strong></p>
<p> 这种方式可以自定安装指定的模块以及最新的版本。方式更灵活。</p>
<p> 官方下载页面:http://nginx.org/en/download.html</p>
<p> configure配置文件详解:http://nginx.org/en/docs/configure.html</p>
<p> 安装gcc g++的依赖库</p>
<p> Nginx是C语言开发,<strong>安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境</strong></p>
<div class="cnblogs_code">
<pre>sudo apt-get install build-essential
sudo apt-get install libtool</pre>
<pre><strong>centos的话:yum install gcc-c++ </strong></pre>
</div>
<p> 安装pcre依赖库(http://www.pcre.org/)</p>
<p><strong> 是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库</strong></p>
<div class="cnblogs_code">
<pre>sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev</pre>
<pre><strong>centos的话:<strong>yum install -y pcre pcre-devel</strong></strong></pre>
</div>
<p> 安装zlib依赖库(http://www.zlib.net)</p>
<p><strong> zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库</strong></p>
<div class="cnblogs_code">
<pre>sudo apt-get install zlib1g-dev</pre>
<pre><strong>centos的话:<strong>yum install -y zlib zlib-devel</strong></strong></pre>
</div>
<p> 安装SSL依赖库(16.04默认已经安装了)</p>
<p><strong> OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。<br></strong><strong> nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。</strong></p>
<div class="cnblogs_code">
<pre>sudo apt-get install openssl</pre>
<pre><strong>centos的话:<strong>yum install -y openssl openssl-devel</strong></strong></pre>
</div>
<p>安装Nginx</p>
<div class="cnblogs_code">
<pre>#下载最新版本:
wget http://nginx.org/download/nginx-1.13.6.tar.gz
#解压:
tar -zxvf nginx-1.13.9.tar.gz
#进入解压目录:
cd nginx-1.13.6
#配置:
./configure --prefix=/usr/local/nginx
#编译:
make
#安装:
sudo make install
#启动:
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
注意:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过-h查看帮助命令。
#查看进程:
ps -ef | grep nginx</pre>
</div>
<p><strong><span style="color: rgba(255, 0, 0, 1)">关于configure、make、make install</span></strong></p>
<div class="cnblogs_code">
<pre>源码的安装一般由有这三个步骤:配置(<span style="color: rgba(0, 0, 255, 1)">configure</span>)、编译(<span style="color: rgba(0, 0, 255, 1)">make</span>)、安装(<span style="color: rgba(0, 0, 255, 1)">make</span> <span style="color: rgba(0, 0, 255, 1)">install</span><span style="color: rgba(0, 0, 0, 1)">)
其中–prefix选项就是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在</span>/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/<span style="color: rgba(0, 0, 0, 1)">share,比较分散。
为了便于集中管理某个软件的各种文件,可以配置–prefix,如:.</span>/configure –prefix=/usr/<span style="color: rgba(0, 0, 0, 1)">local 。可以把所有资源文件放在</span>/usr/local的路径中,就不会分散了。<br>使用--prefix选项的另一个好处是方便卸载软件或移植软件;当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;而移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)。</pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>configure</strong></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">首先检查机器的一些配置和环境,系统的相关依赖。如果缺少相关依赖,脚本会停止执行,软件安装失败
根据之前检查环境和依赖的结果,生产Makefile文件(main job)</span></pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>make</strong></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">make是Unix系统下的一个包。执行make命令需Makefile文件。make会根据Makefile文件中指令来安装软件
Makefile文件中有许多标签,来表示不同的section。一般的,make会编译源代码并生成可执行文件,其实Makefile主要就是描述文件编译的相互依赖关系</span></pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>make install</strong></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">当执行make命令不加任何参数,程序就会按照Makefile的指令在相应的section间跳转并且执行相应的命令
加上install参数即执行make install时,程序只会执行install section处的命令。install section的指令会将make阶段生产的可执行文件拷贝到相应的地方,例如</span>/usr/local/<span style="color: rgba(0, 0, 0, 1)">bin
make clean 会删除上次make生产的obj文件以及可执行文件</span></pre>
</div>
<p>配置软链接</p>
<div class="cnblogs_code">
<pre>sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx</pre>
</div>
<p>现在就可以不用路径直接输入nginx启动。</p>
<p>配置开机启动服务</p>
<p>在/etc/init.d/下创建nginx文件,sudo vim /etc/init.d/nginx,内容如下:</p>
<div class="cnblogs_code"><img id="code_img_closed_87bda383-b3a8-4a6d-8443-fecb56526a83" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_87bda383-b3a8-4a6d-8443-fecb56526a83" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_87bda383-b3a8-4a6d-8443-fecb56526a83" class="cnblogs_code_hide">
<pre>#!/bin/<span style="color: rgba(0, 0, 255, 1)">sh</span><span style="color: rgba(0, 0, 0, 1)">
### BEGIN INIT INFO
# Provides: nginx
# Required</span>-<span style="color: rgba(0, 0, 0, 1)">Start: $local_fs $remote_fs $network $syslog $named
# Required</span>-<span style="color: rgba(0, 0, 0, 1)">Stop: $local_fs $remote_fs $network $syslog $named
# Default</span>-Start: <span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(128, 0, 128, 1)">3</span> <span style="color: rgba(128, 0, 128, 1)">4</span> <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">
# Default</span>-Stop: <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">
# Short</span>-<span style="color: rgba(0, 0, 0, 1)">Description: starts the nginx web server
# Description: starts nginx using start</span>-stop-<span style="color: rgba(0, 0, 0, 1)">daemon
### END INIT INFO
PATH</span>=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/<span style="color: rgba(0, 0, 0, 1)">bin
DAEMON</span>=/usr/local/nginx/sbin/<span style="color: rgba(0, 0, 0, 1)">nginx
NAME</span>=<span style="color: rgba(0, 0, 0, 1)">nginx
DESC</span>=<span style="color: rgba(0, 0, 0, 1)">nginx
# Include nginx defaults </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> available
</span><span style="color: rgba(0, 0, 255, 1)">if</span> [ -r /etc/default/nginx ]; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
. </span>/etc/default/<span style="color: rgba(0, 0, 0, 1)">nginx
</span><span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
STOP_SCHEDULE</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
test </span>-x $DAEMON || exit <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
. </span>/lib/init/vars.<span style="color: rgba(0, 0, 255, 1)">sh</span><span style="color: rgba(0, 0, 0, 1)">
. </span>/lib/lsb/init-<span style="color: rgba(0, 0, 0, 1)">functions
# Try to extract nginx pidfile
PID</span>=$(<span style="color: rgba(0, 0, 255, 1)">cat</span> /usr/local/nginx/conf/nginx.conf | <span style="color: rgba(0, 0, 255, 1)">grep</span> -Ev <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">^\s*#</span><span style="color: rgba(128, 0, 0, 1)">'</span> | <span style="color: rgba(0, 0, 255, 1)">awk</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">BEGIN { RS="[;{}]" } { if ($1 == "pid") print $2 }</span><span style="color: rgba(128, 0, 0, 1)">'</span> | <span style="color: rgba(0, 0, 255, 1)">head</span> -<span style="color: rgba(0, 0, 0, 1)">n1)
</span><span style="color: rgba(0, 0, 255, 1)">if</span> [ -z <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$PID</span><span style="color: rgba(128, 0, 0, 1)">"</span> ]; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
PID</span>=/run/<span style="color: rgba(0, 0, 0, 1)">nginx.pid
</span><span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> [ -n <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$ULIMIT</span><span style="color: rgba(128, 0, 0, 1)">"</span> ]; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
# Set ulimit </span><span style="color: rgba(0, 0, 255, 1)">if</span> it is set <span style="color: rgba(0, 0, 255, 1)">in</span> /etc/default/<span style="color: rgba(0, 0, 0, 1)">nginx
ulimit $ULIMIT
</span><span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
start_nginx() {
# Start the daemon</span>/<span style="color: rgba(0, 0, 0, 1)">service
#
# Returns:
# </span><span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon has been started
# </span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon was already running
# </span><span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon could not be started
start</span>-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --test > /dev/<span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)"> \
</span>|| return <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
start</span>-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --<span style="color: rgba(0, 0, 0, 1)"> \
$DAEMON_OPTS </span><span style="color: rgba(128, 0, 128, 1)">2</span>>/dev/<span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)"> \
</span>|| return <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
}
test_config() {
# Test the nginx configuration
$DAEMON </span>-t $DAEMON_OPTS >/dev/<span style="color: rgba(0, 0, 255, 1)">null</span> <span style="color: rgba(128, 0, 128, 1)">2</span>>&<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
}
stop_nginx() {
# Stops the daemon</span>/<span style="color: rgba(0, 0, 0, 1)">service
#
# Return
# </span><span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon has been stopped
# </span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon was already stopped
# </span><span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> daemon could not be stopped
# other </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> a failure occurred
start</span>-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --<span style="color: rgba(0, 0, 0, 1)">name $NAME
RETVAL</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">sleep</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$RETVAL</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
}
reload_nginx() {
# Function that sends a SIGHUP to the daemon</span>/<span style="color: rgba(0, 0, 0, 1)">service
start</span>-stop-daemon --stop --signal HUP --quiet --pidfile $PID --<span style="color: rgba(0, 0, 0, 1)">name $NAME
return </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
}
rotate_logs() {
# Rotate log files
start</span>-stop-daemon --stop --signal USR1 --quiet --pidfile $PID --<span style="color: rgba(0, 0, 0, 1)">name $NAME
return </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
}
upgrade_nginx() {
# Online upgrade nginx executable
# http:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">nginx.org/en/docs/control.html</span>
<span style="color: rgba(0, 0, 0, 1)"> #
# Return
# </span><span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> nginx has been successfully upgraded
# </span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> nginx is not running
# </span><span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">if</span> the pid files were not created on <span style="color: rgba(0, 0, 255, 1)">time</span><span style="color: rgba(0, 0, 0, 1)">
# </span><span style="color: rgba(128, 0, 128, 1)">3</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> the old master could not be killed
</span><span style="color: rgba(0, 0, 255, 1)">if</span> start-stop-daemon --stop --signal USR2 --quiet --pidfile $PID --name $NAME; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
# Wait </span><span style="color: rgba(0, 0, 255, 1)">for</span> both old and new master to <span style="color: rgba(0, 0, 255, 1)">write</span> their pid <span style="color: rgba(0, 0, 255, 1)">file</span>
<span style="color: rgba(0, 0, 255, 1)">while</span> [ ! -s <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">${PID}.oldbin</span><span style="color: rgba(128, 0, 0, 1)">"</span> ] || [ ! -s <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">${PID}</span><span style="color: rgba(128, 0, 0, 1)">"</span> ]; <span style="color: rgba(0, 0, 255, 1)">do</span><span style="color: rgba(0, 0, 0, 1)">
cnt</span>=`<span style="color: rgba(0, 0, 255, 1)">expr</span> $cnt + <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">`
</span><span style="color: rgba(0, 0, 255, 1)">if</span> [ $cnt -gt <span style="color: rgba(128, 0, 128, 1)">10</span> ]; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 128, 1)">2</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">sleep</span> <span style="color: rgba(128, 0, 128, 1)">1</span>
<span style="color: rgba(0, 0, 255, 1)">done</span><span style="color: rgba(0, 0, 0, 1)">
# Everything is ready, gracefully stop the old master
</span><span style="color: rgba(0, 0, 255, 1)">if</span> start-stop-daemon --stop --signal QUIT --quiet --pidfile <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">${PID}.oldbin</span><span style="color: rgba(128, 0, 0, 1)">"</span> --name $NAME; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 128, 1)">0</span>
<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 128, 1)">3</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span>
<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
return </span><span style="color: rgba(128, 0, 128, 1)">1</span>
<span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
}
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$1</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)">
start)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Starting $DESC</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
start_nginx
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span>
<span style="color: rgba(128, 0, 128, 1)">0</span>|<span style="color: rgba(128, 0, 128, 1)">1</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(128, 0, 128, 1)">2</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(0, 0, 255, 1)">esac</span><span style="color: rgba(0, 0, 0, 1)">
;;
stop)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Stopping $DESC</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
stop_nginx
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span>
<span style="color: rgba(128, 0, 128, 1)">0</span>|<span style="color: rgba(128, 0, 128, 1)">1</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(128, 0, 128, 1)">2</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(0, 0, 255, 1)">esac</span><span style="color: rgba(0, 0, 0, 1)">
;;
restart)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Restarting $DESC</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
# Check configuration before stopping nginx
</span><span style="color: rgba(0, 0, 255, 1)">if</span> ! test_config; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
log_end_msg </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> # Configuration error
exit $</span>?
<span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
stop_nginx
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span>
<span style="color: rgba(128, 0, 128, 1)">0</span>|<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">)
start_nginx
</span><span style="color: rgba(0, 0, 255, 1)">case</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$?</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">in</span>
<span style="color: rgba(128, 0, 128, 1)">0</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> ;;
</span><span style="color: rgba(128, 0, 128, 1)">1</span>) log_end_msg <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> ;; # Old process is still running
</span>*) log_end_msg <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> ;; # Failed to start
</span><span style="color: rgba(0, 0, 255, 1)">esac</span><span style="color: rgba(0, 0, 0, 1)">
;;
</span>*<span style="color: rgba(0, 0, 0, 1)">)
# Failed to stop
log_end_msg </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
;;
</span><span style="color: rgba(0, 0, 255, 1)">esac</span><span style="color: rgba(0, 0, 0, 1)">
;;
reload</span>|force-<span style="color: rgba(0, 0, 0, 1)">reload)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Reloading $DESC configuration</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
# Check configuration before stopping nginx
#
# This is not entirely correct since the on</span>-<span style="color: rgba(0, 0, 0, 1)">disk nginx binary
# may differ from the </span><span style="color: rgba(0, 0, 255, 1)">in</span>-memory one, but that<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s not common.</span>
<span style="color: rgba(0, 0, 0, 1)"> # We prefer to check the configuration and return an error
# to the administrator.
</span><span style="color: rgba(0, 0, 255, 1)">if</span> ! test_config; <span style="color: rgba(0, 0, 255, 1)">then</span><span style="color: rgba(0, 0, 0, 1)">
log_end_msg </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> # Configuration error
exit $</span>?
<span style="color: rgba(0, 0, 255, 1)">fi</span><span style="color: rgba(0, 0, 0, 1)">
reload_nginx
log_end_msg $</span>?<span style="color: rgba(0, 0, 0, 1)">
;;
configtest</span>|<span style="color: rgba(0, 0, 0, 1)">testconfig)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Testing $DESC configuration</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
test_config
log_end_msg $</span>?<span style="color: rgba(0, 0, 0, 1)">
;;
status)
status_of_proc </span>-p $PID <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$DAEMON</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span> && exit <span style="color: rgba(128, 0, 128, 1)">0</span> || exit $?<span style="color: rgba(0, 0, 0, 1)">
;;
upgrade)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Upgrading binary</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
upgrade_nginx
log_end_msg $</span>?<span style="color: rgba(0, 0, 0, 1)">
;;
rotate)
log_daemon_msg </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Re-opening $DESC log files</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$NAME</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
rotate_logs
log_end_msg $</span>?<span style="color: rgba(0, 0, 0, 1)">
;;
</span>*<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">echo</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}</span><span style="color: rgba(128, 0, 0, 1)">"</span> >&<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
exit </span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">
;;
</span><span style="color: rgba(0, 0, 255, 1)">esac</span></pre>
</div>
<span class="cnblogs_code_collapse">脚本</span></div>
<p>-</p>
<div class="cnblogs_code">
<pre>#设置服务脚本有执行权限
sudo chmod +x /etc/init.d/nginx
#注册服务<br>cd /etc/init.d/
sudo update-rc.d nginx defaults</pre>
</div>
<p>现在基本上就可以开机启动了,常用的命令如下:</p>
<div class="cnblogs_code">
<pre>sudo service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}</pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/dongye95/p/11196118.html
頁:
[1]