Nginx(二):编译安装Nginx及参数说明

简介:

安装参数说明:

1
2
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
. /configure
#安装路径,但是对于Nginx来说这里也是默认页面存放路径
--prefix= /usr/nginx
#nginx这个二进制程序放在那里
--sbin-path=建议放在 /usr/sbin/nginx
#配置文件存位置,实际上nginx还有其他配置文件,其他的不用指定位置,nginx.conf放那里他们
#就放那里
--conf-path=建议放在 /etc/nginx/nginx .conf
#错误日志存放位置
--error-log-path=建议放在 /var/log/nginx/error .log
#HTTP访问日志存放位置
--http-log-path=建议放在 /var/log/nginx/access .log
#PID文件路径
--pid-path=建议放在 /var/run/nginx/nginx .pid
#锁文件路径
--lock-path= /var/lock/nginx .lock
#属组和属主,前提是你得建立这个组和账号,如果不指定,默认都是nobody
--user=nginx
--group=nginx
#启用哪些Nginx自带的功能模块
--with- file -aio
--with-threads
--with-http_ssl_module
--with-http_flv_module
--with-http_stub_status_module
--with-http_gzip_static_module
--with-http_geoip_module
--with-http_realip_module
--with-http_v2_module
--with-http_realip_module
 
#添加各种缓存路径
--http-client-body-temp-path= /var/tmp/nginx/client/
--http-proxy-temp-path= /var/tmp/nginx/proxy/
--http-fastcgi-temp-path= /var/tmp/nginx/fcgi/
--http-uwsgi-temp-path= /var/tmp/nginx/uwsgi/
--http-scgi-temp-path= /var/tmp/nginx/scgi/
 
#额外添加的第三方模块,= 后面指定的是这些模块解压后的路径
--add-module= /opt/ngx_cache_purge-2 .3      用于做加速
--add-module= /opt/ngx_http_lower_upper_case-master   用于大小写转换
--add-module= /opt/headers-more-nginx-module-0 .32    用于添加、设置和清除输入、输出头信息
 
#设置的其他路径
#主体临时目录,处理HTTP请求时,如果包体需要暂时存放在磁盘中
--http-client-body-temp-path= /var/tmp/nginx/client/
--http-proxy-temp-path= /var/tmp/nginx/proxy/
--http-fastcgi-temp-path= /var/tmp/nginx/fcgi/
--http-uwsgi-temp-path= /var/tmp/nginx/uwsgi/
--http-scgi-temp-path= /var/tmp/nginx/scgi/
 
--with-openssl= /PATH  openssl源码解压路径,这个的作用是指定Nginx的SSL模块依赖的SSL库
--with-http_ssl_module表示启用SSL模块
--with-pcre= /PATH     pcre源码包解压路径,无需安装
--with-zlib= /PATH     zlib源码包解压路径,无需安装
 
 
#第三方模块查询
#https://www.nginx.com/resources/wiki/modules/


安装演示:

我这里下载的依赖的库和第三方模块都放在了/usr/local/src中

首先创建用户和组

wKioL1iyl8exFKM1AAAzee8SZFU938.jpg

创建/var/tmp下的nginx目录

wKiom1iyl9OwbwZ3AAAek6bzCew174.jpg

至于其他目录,都会自动创建,如下图

wKioL1iyl92T-3v_AABpfHAQZAk048.jpg

如果想把这个过程保存一下就这样写,tee过去,不能用输出重定向,因为如果用了当前你就看不到了。

wKioL1iyl-uBhDIKAAGO7iOgTiQ057.jpg看看这些内容,就是上面我们启用或者添加的第三方模块的东西

wKioL1iymA3w8VncAABumP7C0iE178.jpg

wKioL1iymDyDNNpPAAE1iaTXMFg250.jpg

wKiom1iymDzCXg-ZAAAWH3vnPyM978.jpg

安装完成后查看一下nginx程序的帮助,可以看到:

wKioL1iymFSRQefbAAD9gSnFmIc575.jpg-c默认参数就是我们上面设定的目录,这个就是配置文件路径

-s是给Master进程发信号,停止、(reload)重新加载配置文件,对当前用户没影响对后续用户有影响、重新打开

-t测试主配置文件是否有语法错误

测试一下配置文件

wKioL1iymRGD41m4AABERKgRyBU007.jpg

如果报错,如下,说明你的nginx用户和组没有创建

wKioL1iymRqR_PA4AABSrXufJ7c166.jpg

启动Nginx

wKiom1iymSSglnubAACox103Qi4556.jpg为了方便,你最好先把iptables关闭

wKiom1iymTiAoMgnAAC9GZ2L3K8010.jpg

查看进程,可以看到目前启动时一个Master和一个Work,而且Work是以nginx用户启动的。而master也就是主进程是root用户运行的。

wKiom1iymVGC2tDoAACIiE9rBcE833.jpg它的默认页面文件存放位置在/usr/nginx下面,这个就是Nginx的安装路径,html这个目录安装的时候也无法设置,只能安装完以后从配置文件中修改

wKiom1iymX7x69Y8AAA2GSvQhdI286.jpg


配置自动启动和称为系统服务

这个需要建立一个脚本,并放到/etc/rc.d/init.d下面,起一个名字叫做nginx,脚本内容如下:

1
2
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
132
133
#!/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
# 在/etc/init.d/下面建立nginx执行脚本,复制下面的内容,然后chmod +x 权限
# chkconfig --level 3 nginx on
  
# 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:"  sed  's/[^*]*--user=\([^ ]*\).*/\1/g'  -`
    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
}
  
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

wKiom1iymoSBsaxUAAA3aWB__Vc287.jpg

wKioL1iymoTzrLDiAACNX6BpaTg684.jpg

wKiom1iymoXzNyVkAABFizQvO8Q423.jpg


我常用的安装参数:

1
2
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
. /configure  \
--prefix= /usr/nginx/  \
--sbin-path= /usr/sbin/nginx  \
--conf-path= /etc/nginx/nginx .conf \
--error-log-path= /var/log/nginx/error .log \
--http-log-path= /var/log/nginx/access .log \
--pid-path= /var/run/nginx/nginx .pid \
--lock-path= /var/lock/nginx .lock \
--user=nginx \
--group=nginx \
--with- file -aio \
--with-threads \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_geoip_module \
--with-http_v2_module \
--with-http_realip_module \
--http-client-body-temp-path= /var/tmp/nginx/client/  \
--http-proxy-temp-path= /var/tmp/nginx/proxy/  \
--http-fastcgi-temp-path= /var/tmp/nginx/fcgi/  \
--http-uwsgi-temp-path= /var/tmp/nginx/uwsgi/  \
--http-scgi-temp-path= /var/tmp/nginx/scgi/  \
--add-module= /usr/local/src/headers-more-nginx-module-0 .32 \
--add-module= /usr/local/src/ngx_cache_purge-2 .3 \
--add-module= /usr/local/src/ngx_http_lower_upper_case-master  \
--add-module= /usr/local/src/nginx_upstream_check_module-master  \
--add-module= /usr/local/src/nginx-upstream-fair-master  \
--with-openssl= /usr/local/src/openssl-1 .1.0c \
--with-zlib= /usr/local/src/zlib-1 .2.11 \
--with-pcre= /usr/local/src/pcre-8 .39





      本文转自linuxjavachen  51CTO博客,原文链接http://blog.51cto.com/littledevil/1901387 :,如需转载请自行联系原作者




相关文章
|
1月前
|
应用服务中间件 Linux 网络安全
CentOS 7.4源码编译nginx1.12 并且隐藏nginx的版本
CentOS 7.4源码编译nginx1.12 并且隐藏nginx的版本
17 0
|
6月前
|
应用服务中间件 Linux 网络安全
suse 12 编译部署 Nginx
suse 12 编译部署 Nginx
81 0
|
7月前
|
应用服务中间件 nginx
Nginx-1.14.2编译安装
Nginx-1.14.2编译安装
|
1月前
|
缓存 负载均衡 应用服务中间件
Nginx安装与使用: Nginx之编译安装的nginx加入systemctl、Nginx命令
Nginx安装与使用: Nginx之编译安装的nginx加入systemctl、Nginx命令
59 0
|
6天前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
18 3
|
12天前
|
弹性计算 应用服务中间件 Shell
一键编译安装Nginx脚本
【4月更文挑战第30天】
18 1
|
8月前
|
Ubuntu 应用服务中间件 nginx
百度搜索:蓝易云【Ubuntu 18.04系统编译安装Nginx 1.22教程。】
现在,您已经成功地在Ubuntu 18.04上编译和安装了Nginx 1.22。您可以通过在浏览器中访问服务器的IP地址来验证Nginx是否正常运行。请确保在实际操作中根据您的需求进行适当的配置和调整。请注意,通过编译安装方式安装的Nginx不会自动更新,您需要手动更新版本或进行维护。
95 1
|
8月前
|
应用服务中间件 Linux 网络安全
百度搜索:蓝易云【Cnetos7编译安装Nginx教程。】
现在,您已经成功在CentOS 7上通过编译安装了Nginx。请注意,以上步骤提供了基本的指导,实际操作可能会有所差异。如有需要,您可以参考Nginx官方文档或社区资源获取更详细的信息和帮助。
67 0
|
4月前
|
负载均衡 NoSQL 应用服务中间件
Nginx编译安装及配置文件详解
Nginx编译安装及配置文件详解
|
9月前
|
应用服务中间件 nginx
编译nginx常见错误
编译nginx常见错误