资讯专栏INFORMATION COLUMN

centos下nginx的安装与自启

Yi_Zhi_Yu / 2134人阅读

摘要:安装首先安装之类的东西,编译用选择安装目录,我选的是一般我们都需要先装,前者为了重写,后者为了压缩。指的是的源码路径。

老早就想买个服务器,可惜囊中羞涩,一直没有下手,前两天逛阿里云看见个云翼计划,赶紧踩着青春的尾巴买了一年ECS
自己没事耍耍也是好的呀

</>复制代码

  1. 阿里云翼计划

废话不多说,这就开始

准备工作

服务器一台 我用的是阿里云centos7

xshell 其它亦可

linux基本操作

nginx和配置

我们一会还要安装node,node自己本身可以作为服务器进行驱动,但是node本身对文件的处理能力并不是很好,所以当我们的生产环境中应尽量使用nginx来处理静态的资源以及反向代理,同时也解决了node分布式以及负载均衡的相关问题。

安装

首先安装make gcc之类的东西,编译用

</>复制代码

  1. yum -y install automake autoconf libtool make
  2. yum install gcc gcc-c++

选择nginx安装目录,我选的是 /usr/local/src

</>复制代码

  1. cd /usr/local/src

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

</>复制代码

  1. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
  2. tar -zxvf pcre-8.42.tar.gz
  3. cd pcre-8.42
  4. ./configure
  5. make
  6. make install

可以在ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/选择最新版本pcre

</>复制代码

  1. wget http://zlib.net/zlib-1.2.11.tar.gz
  2. tar -zxvf zlib-1.2.11.tar.gz
  3. cd zlib-1.2.11
  4. ./configure
  5. make
  6. make install

可以在http://zlib.net/选择最新版本zlib

安装ssl

网络通信安全,功能丰富且自包含的开源安全工具箱

</>复制代码

  1. wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
  2. tar -zxvf openssl-1.1.1.tar.gz

可以在https://www.openssl.org/source/选择最新版本openssl

安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

</>复制代码

  1. wget http://nginx.org/download/nginx-1.4.2.tar.gz
  2. tar -zxvf nginx-1.4.2.tar.gz
  3. cd nginx-1.4.2
  4. ./configure --sbin-path=/usr/local/nginx/nginx
  5. --conf-path=/usr/local/nginx/nginx.conf
  6. --pid-path=/usr/local/nginx/nginx.pid
  7. --with-http_ssl_module
  8. --with-pcre=/usr/src/local/pcre-8.42
  9. --with-zlib=/usr/src/local/zlib-1.2.11
  10. --with-openssl=/usr/src/local/openssl-1.1.1
  11. make
  12. make install

--with-pcre=/usr/src/local/pcre-8.42 指的是pcre-8.42 的源码路径。
--with-zlib=/usr/src/local/zlib-1.2.11 指的是zlib-1.2.11 的源码路径。

安装完成

安装成功后 /usr/local/nginx 目录下如下

</>复制代码

  1. drwx------ 2 nobody root 4096 Nov 2 10:16 client_body_temp
  2. -rw-r--r-- 1 root root 1034 Nov 1 18:43 fastcgi.conf
  3. -rw-r--r-- 1 root root 1034 Nov 1 18:43 fastcgi.conf.default
  4. -rw-r--r-- 1 root root 964 Nov 1 18:43 fastcgi_params
  5. -rw-r--r-- 1 root root 964 Nov 1 18:43 fastcgi_params.default
  6. drwx------ 2 nobody root 4096 Nov 2 10:16 fastcgi_temp
  7. drwxr-xr-x 2 root root 4096 Nov 2 11:11 html
  8. -rw-r--r-- 1 root root 2837 Nov 1 18:43 koi-utf
  9. -rw-r--r-- 1 root root 2223 Nov 1 18:43 koi-win
  10. drwxr-xr-x 2 root root 4096 Nov 2 10:16 logs
  11. -rw-r--r-- 1 root root 3463 Nov 1 18:43 mime.types
  12. -rw-r--r-- 1 root root 3463 Nov 1 18:43 mime.types.default
  13. -rwxr-xr-x 1 root root 7177456 Nov 1 18:43 nginx
  14. -rw-r--r-- 1 root root 3937 Nov 13 16:14 nginx.conf
  15. -rw-r--r-- 1 root root 2685 Nov 1 18:43 nginx.conf.default
  16. -rw-r--r-- 1 root root 5 Nov 12 10:02 nginx.pid
  17. drwx------ 12 nobody root 4096 Nov 13 15:29 proxy_temp
  18. -rw-r--r-- 1 root root 596 Nov 1 18:43 scgi_params
  19. -rw-r--r-- 1 root root 596 Nov 1 18:43 scgi_params.default
  20. drwx------ 2 nobody root 4096 Nov 2 10:16 scgi_temp
  21. -rw-r--r-- 1 root root 623 Nov 1 18:43 uwsgi_params
  22. -rw-r--r-- 1 root root 623 Nov 1 18:43 uwsgi_params.default
  23. drwx------ 2 nobody root 4096 Nov 2 10:16 uwsgi_temp
  24. -rw-r--r-- 1 root root 3610 Nov 1 18:43 win-utf
启动

</>复制代码

  1. cd /usr/local/nginx/
  2. ./nginx

现在打开浏览器,输入此机器IP即可看到

</>复制代码

  1. Welcome To Nginx

安装成功!

将nginx加入可执行程序目录

竟然每次操作nginx都要进入/usr/local/nginx/
好麻烦有木有
没关系 软链接来帮你
/usr/local/bin目录是给用户放置自己的可执行程序的地方,
我们只需在这里建立nginx的软链接即可全局执行nginx

</>复制代码

  1. ln -s /usr/local/nginx/nginx /usr/local/bin/nginx

大功告成!

设置nginx开机自启动

每次开机我们都要启动nginx,同样巨麻烦,所以可以写一个自启动脚本,使其开机自启动,岂不美滋滋

</>复制代码

  1. cd /etc/rc.d/init.d
  2. vim nginxserver

这是nginx官网上的自启脚本,将这些粘贴进nginxserver

</>复制代码

  1. #!/bin/sh
  2. #
  3. # nginx - this script starts and stops the nginx daemon
  4. #
  5. # chkconfig: - 85 15
  6. # description: NGINX is an HTTP(S) server, HTTP(S) reverse
  7. # proxy and IMAP/POP3 proxy server
  8. # processname: nginx
  9. # config: /etc/nginx/nginx.conf
  10. # config: /etc/sysconfig/nginx
  11. # pidfile: /var/run/nginx.pid
  12. # Source function library.
  13. . /etc/rc.d/init.d/functions
  14. # Source networking configuration.
  15. . /etc/sysconfig/network
  16. # Check that networking is up.
  17. [ "$NETWORKING" = "no" ] && exit 0
  18. nginx="/usr/local/nginx/nginx"
  19. prog=$(basename $nginx)
  20. NGINX_CONF_FILE="/usr/local/nginx/nginx.conf"
  21. [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
  22. lockfile=/var/lock/subsys/nginx
  23. make_dirs() {
  24. # make required directories
  25. user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed "s/[^*]*--user=([^ ]*).*/1/g" -`
  26. if [ -n "$user" ]; then
  27. if [ -z "`grep $user /etc/passwd`" ]; then
  28. useradd -M -s /bin/nologin $user
  29. fi
  30. options=`$nginx -V 2>&1 | grep "configure arguments:"`
  31. for opt in $options; do
  32. if [ `echo $opt | grep ".*-temp-path"` ]; then
  33. value=`echo $opt | cut -d "=" -f 2`
  34. if [ ! -d "$value" ]; then
  35. # echo "creating" $value
  36. mkdir -p $value && chown -R $user $value
  37. fi
  38. fi
  39. done
  40. fi
  41. }
  42. start() {
  43. [ -x $nginx ] || exit 5
  44. [ -f $NGINX_CONF_FILE ] || exit 6
  45. make_dirs
  46. echo -n $"Starting $prog: "
  47. daemon $nginx -c $NGINX_CONF_FILE
  48. retval=$?
  49. echo
  50. [ $retval -eq 0 ] && touch $lockfile
  51. return $retval
  52. }
  53. stop() {
  54. echo -n $"Stopping $prog: "
  55. killproc $prog -QUIT
  56. retval=$?
  57. echo
  58. [ $retval -eq 0 ] && rm -f $lockfile
  59. return $retval
  60. }
  61. restart() {
  62. configtest || return $?
  63. stop
  64. sleep 1
  65. start
  66. }
  67. reload() {
  68. configtest || return $?
  69. echo -n $"Reloading $prog: "
  70. killproc $nginx -HUP
  71. RETVAL=$?
  72. echo
  73. }
  74. force_reload() {
  75. restart
  76. }
  77. configtest() {
  78. $nginx -t -c $NGINX_CONF_FILE
  79. }
  80. rh_status() {
  81. status $prog
  82. }
  83. rh_status_q() {
  84. rh_status >/dev/null 2>&1
  85. }
  86. case "$1" in
  87. start)
  88. rh_status_q && exit 0
  89. $1
  90. ;;
  91. stop)
  92. rh_status_q || exit 0
  93. $1
  94. ;;
  95. restart|configtest)
  96. $1
  97. ;;
  98. reload)
  99. rh_status_q || exit 7
  100. $1
  101. ;;
  102. force-reload)
  103. force_reload
  104. ;;
  105. status)
  106. rh_status
  107. ;;
  108. condrestart|try-restart)
  109. rh_status_q || exit 0
  110. ;;
  111. *)
  112. echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
  113. exit 2
  114. esac

:wq保存退出

增加脚本的可执行权限

</>复制代码

  1. chmod +x /etc/rc.d/init.d/nginxserver

添加脚本到开机自动启动项目中

</>复制代码

  1. cd /etc/rc.d/init.d
  2. chkconfig --add nginxserver
  3. chkconfig nginxserver on

完事!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40206.html

相关文章

  • 虚拟机Linux Centos7搭建web环境(LNMP)

    摘要:本文内容是,如何在下快速搭建环境。虚拟机实体机环境都可以。按照提示,输入。 本文内容是,如何在Linux centos7下快速搭建LNMP环境。虚拟机、实体机环境都可以。另外,安装教程参考的是,下面这篇文章进行文字排版和内容扩充,感谢hcchanqing作者。CentOS6.2 yum安装配置LNMP服务器(Nginx+PHP+MySQL) 特别提醒:本文系统用的Centos7,是7!...

    Enlightenment 评论0 收藏0

发表评论

0条评论

Yi_Zhi_Yu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<