一、nginx安装
之前在wordpress上有写过一篇安装的步骤:源码编译安装nginx。
但是今天找到了一个更简单的方法,简单几步就能装好:
- 解决依赖关系和添加用户
1 2 3 4 5 6 7 8 |
# 安装依赖项 ## centos yum install prce pcre-devel openssl openssl-devel -y ## ubuntu apt-get install openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev # 添加用户 useradd www -s /sbin/nologin -M |
- 下载安装
1 2 3 4 5 6 |
wget https://mirrors.163.com/nginx/debian/pool/nginx/n/nginx/nginx_1.12.2.orig.tar.gz tar -zxvf nginx_1.12.2.orig.tar.gz cd nginx-1.12.2 ./configure --user=www --group=www --prefix=/usr/local/nginx-1.12.2 --with-http_stub_status_module --with-http_ssl_module make && make install ln -s /usr/local/nginx-1.12.2/ /usr/local/nginx |
- 添加配置文件和服务
添加配置文件目录:
1 2 |
mkdir /etc/nginx cp /usr/local/nginx/conf/* /etc/nginx |
二、service配置文件
复制以下内容到/etc/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 |
#!/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/local/nginx/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 |
- 启动服务
1 |
service nginx start |
三、systemd.service文件
对于systemd系统的服务,首先要找到nginx配置文件中设置的pid文件位置:
1 2 |
> grep "pid" /etc/nginx/nginx.conf pid logs/nginx.pid; |
默认位于logs/nginx.pid
目录下,把它修改为/var/run/nginx.pid
,然后创建一个文件位于/etc/systemd/system/nginx.service
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking # pid文件目录修改成和上面一致 PIDFile=/var/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /etc/nginx/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload -c /etc/nginx/nginx.conf ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target |
要注意的是pid文件的路径一定要改成一致,放在哪无所谓。否则会导致systemd启动nginx超时退出,而实际上nginx已经起来了。
四、校验是否安装成功
本机内输入命令curl -I https://127.0.0.1
,输出以下信息表示成功:
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 200 OK Server: Tomcat/1.0.2 Date: Fri, 14 Dec 2018 14:09:28 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Fri, 14 Dec 2018 14:04:25 GMT Connection: keep-alive ETag: "5c13b869-264" Accept-Ranges: bytes |
同时浏览器输入设备IP之后会显示以下内容:
评论