-  介绍windows环境以及linux环境安装
- nginx作为系统服务
- nginx 常用执行命名
windows
linux
备用知识
- centos7 防火墙相关命令 - 
- 启动  systemctl start firewalld
- 关闭  systemctl stop firewalld
- 查看状态  systemctl status firewalld
- 开机禁用  systemctl disable firewalld
- 开机启动  systemctl enable firewalld
- 添加  firewall-cmd --zone=public --add-port=80/tcp --permanent
 - 
- (–permanent永久生效,没有此参数重启后失效) 
 - 
- 重新载入  firewall-cmd --reload 
- 查看  firewall-cmd --zone= public --query-port=80/tcp 
- 删除  firewall-cmd --zone= public --remove-port=80/tcp --permanent
 
安装
官方参考文档Building nginx from Sources
- 解压文件- tar -zxvf nginx-${version}.tar.gz
 
- 到解压文件夹进行配置- ./configigure --prefix=path
 
–prefix=path 配置安装路径,默认/usr/local/nginx
可能会出现错误,缺少相应的library,执行命名yum -y install library library-devel进行安装
- 执行安装make && make install
系统服务
源码安装采用init脚本进行安装
官方init脚本
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 
 | #!/bin/sh#
 # nginx - this script starts and stops the nginx daemon
 #
 # chkconfig:   - 85 15
 # description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
 #               proxy and IMAP/POP3 proxy server
 # processname: nginx
 # config:      /etc/nginx/nginx.conf
 # config:      /etc/sysconfig/nginx
 # pidfile:     /var/run/nginx.pid
 
 # Source function library.
 . /etc/rc.d/init.d/functions
 
 # Source networking configuration.
 . /etc/sysconfig/network
 
 # Check that networking is up.
 [ "$NETWORKING" = "no" ] && exit 0
 
 nginx="/usr/sbin/nginx"
 prog=$(basename $nginx)
 
 NGINX_CONF_FILE="/etc/nginx/nginx.conf"
 
 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
 lockfile=/var/lock/subsys/nginx
 
 make_dirs() {
 # make required directories
 user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
 if [ -n "$user" ]; then
 if [ -z "`grep $user /etc/passwd`" ]; then
 useradd -M -s /bin/nologin $user
 fi
 options=`$nginx -V 2>&1 | grep 'configure arguments:'`
 for opt in $options; do
 if [ `echo $opt | grep '.*-temp-path'` ]; then
 value=`echo $opt | cut -d "=" -f 2`
 if [ ! -d "$value" ]; then
 # echo "creating" $value
 mkdir -p $value && chown -R $user $value
 fi
 fi
 done
 fi
 }
 
 start() {
 [ -x $nginx ] || exit 5
 [ -f $NGINX_CONF_FILE ] || exit 6
 make_dirs
 echo -n $"Starting $prog: "
 daemon $nginx -c $NGINX_CONF_FILE
 retval=$?
 echo
 [ $retval -eq 0 ] && touch $lockfile
 return $retval
 }
 
 stop() {
 echo -n $"Stopping $prog: "
 killproc $prog -QUIT
 retval=$?
 echo
 [ $retval -eq 0 ] && rm -f $lockfile
 return $retval
 }
 
 restart() {
 configtest || return $?
 stop
 sleep 1
 start
 }
 
 reload() {
 configtest || return $?
 echo -n $"Reloading $prog: "
 killproc $nginx -HUP
 RETVAL=$?
 echo
 }
 
 force_reload() {
 restart
 }
 
 configtest() {
 $nginx -t -c $NGINX_CONF_FILE
 }
 
 rh_status() {
 status $prog
 }
 
 rh_status_q() {
 rh_status >/dev/null 2>&1
 }
 
 case "$1" in
 start)
 rh_status_q && exit 0
 $1
 ;;
 stop)
 rh_status_q || exit 0
 $1
 ;;
 restart|configtest)
 $1
 ;;
 reload)
 rh_status_q || exit 7
 $1
 ;;
 force-reload)
 force_reload
 ;;
 status)
 rh_status
 ;;
 condrestart|try-restart)
 rh_status_q || exit 0
 ;;
 *)
 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
 exit 2
 esac
 
 | 
- 修改脚本中nginx以及NGINX_CONF_FILE
- 赋予运行权限 chmod +x nginx
- 运行service相关命令service nginx start|stop|reload|status|restart
问题
- cento7中按脚本方式安装过后,启动会报错,报错如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | ● nginx.service - SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy serverLoaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
 Active: failed (Result: exit-code) since 六 2018-10-13 19:58:32 CST; 18s ago
 Docs: man:systemd-sysv-generator(8)
 Process: 7340 ExecStart=/etc/rc.d/init.d/nginx start (code=exited, status=203/EXEC)
 
 10月 13 19:58:32 centos7-3 systemd[1]: Starting SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server...
 10月 13 19:58:32 centos7-3 systemd[1]: nginx.service: control process exited, code=exited status=203
 10月 13 19:58:32 centos7-3 systemd[1]: Failed to start SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server.
 10月 13 19:58:32 centos7-3 systemd[1]: Unit nginx.service entered failed state.
 10月 13 19:58:32 centos7-3 systemd[1]: nginx.service failed.
 
 | 
答: 查找各种资料,没找到解决办法,可采用下面两种安装办法
包安装
官方参考地址
- 安装- yum-utils
 | 1
 | yum -y install yum-utils
 |  
 
- 创建/etc/yum.repos.d/nginx.repo文件,文件内容如下: | 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | [nginx-stable]name=nginx stable repo
 baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
 gpgcheck=1
 enabled=1
 gpgkey=https://nginx.org/keys/nginx_signing.key
 module_hotfixes=true
 
 [nginx-mainline]
 name=nginx mainline repo
 baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
 gpgcheck=1
 enabled=0
 gpgkey=https://nginx.org/keys/nginx_signing.key
 module_hotfixes=true
 
 |  
 
- 启动- nginx-mainline,默认是启用- nginx-stable
 | 1
 | sudo yum-config-manager --enable nginx-mainline
 |  
 
- 执行- yum -y install nginx进行安装
 
安装目录为/etc/nginx,公共的配置文件在nginx.conf中,私有配置在conf.d/default.conf中
执行命令
官方文档地址
- 启动 - ./nginx
 
- 立即停止 - ./nginx -s stop
 
- 体面停止 - ./nginx -s quit
 
- 生效配置文件 - ./nginx -s reload
 
- 校验配置文件 - ./nginx -t