Linux 6下安装编译安装Nginx的步骤

本文详细介绍在Linux6环境下从源码编译安装Nginx的过程,包括配置环境、编译参数说明、启动及配置为系统服务的方法,并提供解决常见故障的方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 6下安装编译安装Nginx的步骤

前言:

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达50,000个并发连接数的响应,而且内存开销极小。这也是Nginx广受欢迎的重要原因。本文演示了基于Linux 6下编译安装Nginx,供大家参考。

一、安装环境

1

2

3

4

5

# cat /etc/issue

Red Hat Enterprise Linux Server release 6.3 (Santiago)

Kernel \r on an \m

# nginx -v

nginx version: nginx/1.8.0

二、配置安装环境

1

2

3

4

5

6

7

8

9

10

11

12

13

###为简化安装及配置,此处关闭了防火墙,生产环境建议开启

# service iptables stop

# chkconfig iptables off

 

# vi /etc/selinux/config

SELINUX=disabled

 

###创建用户及组

#groupadd -r nginx

#useradd -s /sbin/nologin -g nginx -r nginx

 

###安装环境依赖包 http://nginx.org/en/linux_packages.html

# yum install pcre-devel zlib-devel openssl openssl-devel gcc gcc-c++

三、编译及安装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

# cd /tmp/

# tar -xvf nginx-1.8.0.tar.gz

# cd /nginx-1.8.0

# ./configure           \

--prefix=/etc/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.pid                \

--lock-path=/var/run/nginx.lock               \

--http-client-body-temp-path=/var/cache/nginx/client_temp  \

--http-proxy-temp-path=/var/cache/nginx/proxy_temp      \

--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp    \

--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp      \

--http-scgi-temp-path=/var/cache/nginx/scgi_temp       \

--user=nginx                         \

--group=nginx                        \

--with-http_ssl_module                    \

--with-http_realip_module                  \

--with-http_addition_module                 \

--with-http_sub_module                    \

--with-http_dav_module                    \

--with-http_flv_module                    \

--with-http_mp4_module                    \

--with-http_gunzip_module                  \

--with-http_gzip_static_module                \

--with-http_random_index_module               \

--with-http_secure_link_module                \

--with-http_stub_status_module                \

--with-http_auth_request_module               \

--with-mail                         \

--with-mail_ssl_module                    \

--with-file-aio                       \

--with-http_spdy_module                   \

--with-ipv6                        

 

Configuration summary

 + using system PCRE library

 + using system OpenSSL library

 + md5: using OpenSSL library

 + sha1: using OpenSSL library

 + using system zlib library

 

 nginx path prefix: "/etc/nginx"

 nginx binary file: "/usr/sbin/nginx"

 nginx configuration prefix: "/etc/nginx"

 nginx configuration file: "/etc/nginx/nginx.conf"

 nginx pid file: "/var/run/nginx.pid"

 nginx error log file: "/var/log/nginx/error.log"

 nginx http access log file: "/var/log/nginx/access.log"

 nginx http client request body temporary files: "/var/cache/nginx/client_temp"

 nginx http proxy temporary files: "/var/cache/nginx/proxy_temp"

 nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp"

 nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp"

 nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"

 

###如果apache httpd服务启动,建议先停止或更改端口号

# service httpd stop

# mkdir -p /var/cache/nginx/{client_temp,proxy_temp,fastcgi_temp,uwsgi_temp,scgi_temp}

# make && make install

 

###启动nginx

# /usr/sbin/nginx -c /etc/nginx/nginx.conf

 

# ps -ef|grep nginx|grep -v grep

root   33412   1 0 10:18 ?    00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

nginx   33413 33412 0 10:18 ?    00:00:00 nginx: worker process

 

[root@orasrv1 cache]# netstat -nltp|grep 80

tcp    0   0 0.0.0.0:80         0.0.0.0:*          LISTEN   33412/nginx    

[root@orasrv1 cache]#

四、配置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

vi /etc/init.d/nginx

 

#!/bin/bash

# nginx Startup script for the Nginx HTTP Server

# chkconfig: - 85 15

# description: Nginx is an HTTP(S) server, HTTP(S) reverse \

#        proxy and IMAP/POP3 proxy server

# Author : Leshami

# Blog  : http://blog.csdn.net/leshami     

# processname: nginx

# pidfile: /var/run/nginx.pid

# config: /etc/nginx/nginx.conf

 

#path for nginx binary

nginxd=/usr/sbin/nginx

 

#path for nginx configuration

nginx_config=/etc/nginx/nginx.conf

 

#path for nginx pid

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 u+x /etc/init.d/nginx

 

# service nginx start

Starting nginx:                      [ OK ]

 

# ps -ef|grep nginx |grep -v grep

root   33534   1 0 10:33 ?    00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

nginx   33535 33534 0 10:33 ?    00:00:00 nginx: worker process 

 

# service nginx stop

Stopping nginx:                      [ OK ]

 

# chkconfig --add nginx

# chkconfig nginx on

五、安装过程中的常见故障

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

./configure: error: the HTTP rewrite module requires the PCRE library.

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

 

./configure: error: the HTTP gzip module requires the zlib library.

You can either disable the module by using --without-http_gzip_module

option, or install the zlib library into the system, or build the zlib library

statically from the source with nginx by using --with-zlib=<path> option.

### 以上2个错误,请安装相应的依赖包,见本文第二部分:配置安装环境

 

# /usr/sbin/nginx

nginx: [emerg] getpwnam("nginx") failed

### 需要创建nginx用户组及用户

 

# /usr/sbin/nginx

nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)

### 需要创建对应的目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值