在Ubuntu下安装Nginx有以下方法,但是如果想要安装最新版本的就必须下载源码包编译安装。

一、基于APT源安装

sudo apt-get install nginx

1、安装好的文件位置:

/usr/sbin/nginx:主程序

/etc/nginx:存放配置文件

/usr/share/nginx:存放静态文件

/var/log/nginx:存放日志

2、从上面的根目录文件夹可以知道:

Linux系统的配置文件一般放在/etc,日志一般放在/var/log,运行的程序一般放在/usr/sbin或者/usr/bin。

当然,如果要更清楚Nginx的配置项放在什么地方,可以打开/etc/nginx/nginx.conf

Nginx如果指定默认加载/etc/nginx/nginx.conf的配置文件。如果要查看加载的是哪个配置文件,可以用这个命令

sudo nginx -t(检查语法是否正确)或者ps -ef | grep nginx

然后通过这种方式安装的,会自动创建服务,会自动在/etc/init.d/nginx新建服务脚本,然后就可以使用

sudo service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}

的命令执行相关操作。

二、通过源码包编译安装

这种方式可以自定安装指定的模块以及最新的版本。方式更灵活。

官方下载页面:http://nginx.org/en/download.html

configure配置文件详解:http://nginx.org/en/docs/configure.html

1、安装gcc g++的依赖库

sudo apt-get install build-essential
sudo apt-get install libtool

2、安装pcre依赖库(http://www.pcre.org/)

sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev

3、安装zlib依赖库(http://www.zlib.net)

sudo apt-get install zlib1g-dev

4、安装SSL依赖库(16.04默认已经安装了)

sudo apt-get install openssl

5、安装Nginx

#下载最新版本:
wget http://nginx.org/download/nginx-1.13.6.tar.gz
#解压:
tar -zxvf nginx-1.13.6.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

6、配置软链接

sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

现在就可以不用路径直接输入nginx启动。

三 、配置开机启动服务

在/etc/init.d/下创建nginx文件,sudo vim /etc/init.d/nginx,内容如下:

#!/bin/sh### BEGIN INIT INFO
# Provides:      nginx
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFOPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/nginx/sbin/nginx
NAME=nginx
DESC=nginx# Include nginx defaults if available
if [ -r /etc/default/nginx ]; then. /etc/default/nginx
fiSTOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}"test -x $DAEMON || exit 0. /lib/init/vars.sh
. /lib/lsb/init-functions# Try to extract nginx pidfile
PID=$(cat /usr/local/nginx/conf/nginx.conf | grep -Ev '^\s*#' | awk 'BEGIN { RS="[;{}]" } { if ($1 == "pid") print $2 }' | head -n1)
if [ -z "$PID" ]; thenPID=/run/nginx.pid
fiif [ -n "$ULIMIT" ]; then# Set ulimit if it is set in /etc/default/nginxulimit $ULIMIT
fistart_nginx() {# Start the daemon/service## Returns:#   0 if daemon has been started#   1 if daemon was already running#   2 if daemon could not be startedstart-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --test > /dev/null \|| return 1start-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON -- \$DAEMON_OPTS 2>/dev/null \|| return 2
}test_config() {# Test the nginx configuration$DAEMON -t $DAEMON_OPTS >/dev/null 2>&1
}stop_nginx() {# Stops the daemon/service## Return#   0 if daemon has been stopped#   1 if daemon was already stopped#   2 if daemon could not be stopped#   other if a failure occurredstart-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAMERETVAL="$?"sleep 1return "$RETVAL"
}reload_nginx() {# Function that sends a SIGHUP to the daemon/servicestart-stop-daemon --stop --signal HUP --quiet --pidfile $PID --name $NAMEreturn 0
}rotate_logs() {# Rotate log filesstart-stop-daemon --stop --signal USR1 --quiet --pidfile $PID --name $NAMEreturn 0
}upgrade_nginx() {# Online upgrade nginx executable# http://nginx.org/en/docs/control.html## Return#   0 if nginx has been successfully upgraded#   1 if nginx is not running#   2 if the pid files were not created on time#   3 if the old master could not be killedif start-stop-daemon --stop --signal USR2 --quiet --pidfile $PID --name $NAME; then# Wait for both old and new master to write their pid filewhile [ ! -s "${PID}.oldbin" ] || [ ! -s "${PID}" ]; docnt=`expr $cnt + 1`if [ $cnt -gt 10 ]; thenreturn 2fisleep 1done# Everything is ready, gracefully stop the old masterif start-stop-daemon --stop --signal QUIT --quiet --pidfile "${PID}.oldbin" --name $NAME; thenreturn 0elsereturn 3fielsereturn 1fi
}case "$1" instart)log_daemon_msg "Starting $DESC" "$NAME"start_nginxcase "$?" in0|1) log_end_msg 0 ;;2)   log_end_msg 1 ;;esac;;stop)log_daemon_msg "Stopping $DESC" "$NAME"stop_nginxcase "$?" in0|1) log_end_msg 0 ;;2)   log_end_msg 1 ;;esac;;restart)log_daemon_msg "Restarting $DESC" "$NAME"# Check configuration before stopping nginxif ! test_config; thenlog_end_msg 1 # Configuration errorexit $?fistop_nginxcase "$?" in0|1)start_nginxcase "$?" in0) log_end_msg 0 ;;1) log_end_msg 1 ;; # Old process is still running*) log_end_msg 1 ;; # Failed to startesac;;*)# Failed to stoplog_end_msg 1;;esac;;reload|force-reload)log_daemon_msg "Reloading $DESC configuration" "$NAME"# Check configuration before stopping nginx## This is not entirely correct since the on-disk nginx binary# may differ from the in-memory one, but that's not common.# We prefer to check the configuration and return an error# to the administrator.if ! test_config; thenlog_end_msg 1 # Configuration errorexit $?fireload_nginxlog_end_msg $?;;configtest|testconfig)log_daemon_msg "Testing $DESC configuration"test_configlog_end_msg $?;;status)status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $?;;upgrade)log_daemon_msg "Upgrading binary" "$NAME"upgrade_nginxlog_end_msg $?;;rotate)log_daemon_msg "Re-opening $DESC log files" "$NAME"rotate_logslog_end_msg $?;;*)echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}" >&2exit 3;;
esac
#设置服务脚本有执行权限
sudo chmod +x /etc/init.d/nginx
#注册服务
cd /etc/init.d/
sudo update-rc.d nginx defaults

现在基本上就可以开机启动了,

四、常用命令

sudo service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}

五、需要注意问题

1、nginx配置

nginx.conf中,设置以下几个参数,增加超时时间

fastcgi_connect_timeoutfastcgi连接超时时间,默认60秒fastcgi_send_timeoutnginx 进程向 fastcgi 进程发送请求过程的超时时间,默认值60秒fastcgi_read_timeoutfastcgi 进程向 nginx 进程发送输出过程的超时时间,默认值60秒

2、上传超过1M大的客户端文件无法正常上传,nginx直接报错

上传文件太大,修改了下nginx的配置,就可以了。

client_max_body_size 10M;

总结与整理:Ubuntu系统下安装、配置Nginx及其他注意事项相关推荐

  1. Linux系统下安装配置 Nginx 超详细图文教程

    Linux系统下安装配置 Nginx 详细教程介绍 一.下载 Nginx 安装包 打开Nginx官网 :http://nginx.org/en/download.html 然后我们找到一个版本,把鼠标 ...

  2. 在ubuntu系统下安装缺少的字体(一般缺少中文字体)

    在ubuntu系统下安装缺少的字体 cite:Ubuntu LaTeX 环境配置:https://www.cnblogs.com/xqmeng/p/13931222.html 第一步:下载缺少的字体 ...

  3. 终端linux输入法安装程序,在Ubuntu系统下安装百度输入法Linux版的方法

    本文介绍在Ubuntu系统下安装百度输入法Linux版(也称为百度Linux输入法)的方法,以Ubuntu 18.04版本为例说明.说明:该输入法支持在Ubuntu 18.04.1810.1904.1 ...

  4. IntelliJ IDEA使用教程(动图详解):Ubuntu 系统下安装 IntelliJ IDEA

    Ubuntu 系统下安装 IntelliJ IDEA 系统要求 系统支持:只要是支持 GNOME 或 KDE 桌面系统,建议是 Ubuntu(32位和64位都可以) JDK 版本:Oracle JDK ...

  5. windows7系统适合哪个python_Python3.6.4在Windows7系统下安装配置教程

    Python3.64在Windows7系统下安装配置教程 工具/原料 Windows7系统 python3.6.4版本 方法/步骤 1 双击应用程序打开如图所示的界面这里是应用程序向导界面 这里建议勾 ...

  6. centos6.2系统下安装配置FastDFS步骤

    2019独角兽企业重金招聘Python工程师标准>>> centos6.2系统下安装配置FastDFS步骤: 1:安装libevent(libevent-2.0.16-stable) ...

  7. Ubuntu系统下安装ssh的方法

    1.用Ctrl+Alt+T打开Ubuntu终端,输入sudo apt-get update命令–>回车–>输入当前登录用户的管理员密码–>回车以实现更新Ubuntu系统: 2.安装s ...

  8. 在ubuntu系统下安装python

    一.背景介绍 随着本人python使用的越来越多,跑的代码和程序越来越复杂,从git下载代码也更多的需要liux系统才能使用,所以考虑在ubuntu系统下安装python,此博文也是基于CSDN7天培 ...

  9. Ubuntu系统下安装eclipse

    Ubuntu系统下安装eclipse 想要正确的安装eclipse,需要在Ubuntu系统上提前安装jdk 可以在终端使用java -version来查看是否安装jdk 如果没有安装jdk,可以参考网 ...

  10. Linux服务器下安装配置Nginx的教程

    这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx("engine x")是一款 ...

最新文章

  1. 多行字符串,带有多余的空格(保留缩进)
  2. 如何使用html和css,如何使用html和css制作这个div?
  3. 千鸟弹幕机器人_千鸟熊猫TV直播弹幕机器人软件
  4. java数组深拷贝和浅拷贝_java中的深拷贝与浅拷贝(值类型 vs 引用类型)
  5. 基于无线通信技术的智能公交系统设计
  6. 冗余的阿里云实例开启和停止API
  7. IAR切BANK--命令连接器文件xcl格式说明
  8. 【ShoppingWebCrawler】-C#开发的基于Webkit内核开源爬虫蜘蛛引擎
  9. 2022最新iApp源码(破解ZIP密码)+已编译的成品
  10. 2018年技术直播PPT干货分享
  11. GridView的dataformatstring设置
  12. 安装WIN8提示Error Code:0x0000005D的解决办法
  13. oracle sparc t5-2报价,SPARC T5-2服务器
  14. 2023最新苹果CMS10魔加主题1.1.6去授权版+支持全部版本
  15. Pandas Task1
  16. Quartus II IP生成报错
  17. 北邮计院数电第五章——VHDL语言
  18. Python函数isdigit()--判断字符串是否为数字
  19. 常用端口号及其对应作用
  20. 线性代数Python计算:解可逆系数矩阵线性方程组

热门文章

  1. java台球游戏设计原理_Java实现简单台球游戏
  2. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-11项目日志解决方案
  3. 洛谷1345 [Usaco5.4]奶牛的电信
  4. 大龄屌丝自学笔记--Java零基础到菜鸟--036
  5. 利用多线程句柄设置鼠标忙碌状态
  6. std::string的resize()与reserve()的区别
  7. 北航博士,研究所月入两万
  8. 自己动手实现一个malloc内存分配器 | 30图
  9. 每日一题(48)—— 中断
  10. 动态规划思路和Python解决零钱兑换问题和最大乘积子序列的乘积的问题