Nginx【第一篇】安装
一、简介
Nginx("engine x")是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的 Web 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx 是 Apache 服务器不错的替代品。
二、准备
1、环境
系统平台:Red Hat Enterprise Linux Server release 7.3 (Maipo)
内核版本:3.10.0-514.el7.x86_64
2、安装编译工具和库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
3、安装pcre
PCRE 作用是让 Ngnix 支持 Rewrite 功能。
查看是否安装pcre
# pcre-config --version
上述表明已安装。
若未安装,参照以下步骤:
1)下载
地址:https://sourceforge.net/projects/pcre/files/pcre/
2)解压安装包:
# tar zxvf pcre-8.35.tar.gz
3)编译安装
# cd pcre-8.35
# ./configure
# make && make install
三、安装
1、下载 nginx 安装包
2、解压
# tar zxvf nginx-1.10.2.tar.gz
3、编译
# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre
4、安装
# make
# make install
5、测试
查看nginx版本
# /usr/local/nginx/sbin/nginx -v
显示版本信息,证明已安装成功
四、配置
1、创建用户
创建 Nginx 运行使用的用户 ruready:
# /usr/sbin/groupadd ruready
# /usr/sbin/useradd -g ruready ruready
2、配置nginx.conf
# vi /usr/local/nginx/conf/nginx.conf
user ruready ruready; worker_processes 2; error_log /usr/local/nginx/logs/error.log crit; # 日志位置和日志级别 pid /usr/local/nginx/logs/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /usr/local/nginx/logs/access.log main; sendfile on; tcp_nopush on; keepalive_timeout 60; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; # 下面是server虚拟主机的配置 server { listen 80;#监听端口 server_name localhost;#域名 charset utf-8; access_log /usr/local/nginx/logs/host.access.log main; location / { root html; index index.html index.htm; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
3、检查配置文件ngnix.conf的正确性
# /usr/local/nginx/sbin/nginx -t
五、启动
1、启动命令
# /usr/local/nginx/sbin/nginx
2、访问测试
3、可以通过 links命令测试
links 127.0.0.1:8080
六、常用命令
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/sbin/nginx/nginx.conf # 加载指定配置文件启动
/usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/nginx/sbin/nginx -s stop # 停止 Nginx
七、其他
1、设置开机启动
echo "/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf" >> /etc/rc.local
2、添加到 service 服务
touch /etc/init.d/nginx
chmod 755 nginx //修改脚本文件nginx的权限
chkconfig --add nginx //将脚本文件加入chkconfig中
chkconfig --level 35 nginx on //设置nginx开机在3和5级别自动启动
nginx 文件内容如下:
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/sbin/nginx" 19 prog=$(basename $nginx) 20 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" 21 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 22 lockfile=/var/lock/subsys/nginx 23 24 start() { 25 [ -x $nginx ] || exit 5 26 [ -f $NGINX_CONF_FILE ] || exit 6 27 echo -n $"Starting $prog: " 28 daemon $nginx -c $NGINX_CONF_FILE 29 retval=$? 30 echo 31 [ $retval -eq 0 ] && touch $lockfile 32 return $retval 33 } 34 35 stop() { 36 echo -n $"Stopping $prog: " 37 killproc $prog -QUIT 38 retval=$? 39 echo 40 [ $retval -eq 0 ] && rm -f $lockfile 41 return $retval 42 killall -9 nginx 43 } 44 45 restart() { 46 configtest || return $? 47 stop 48 sleep 1 49 start 50 } 51 52 reload() { 53 configtest || return $? 54 echo -n $"Reloading $prog: " 55 killproc $nginx -HUP 56 RETVAL=$? 57 echo 58 } 59 60 force_reload() { 61 restart 62 } 63 64 configtest() { 65 $nginx -t -c $NGINX_CONF_FILE 66 } 67 68 rh_status() { 69 status $prog 70 } 71 72 rh_status_q() { 73 rh_status >/dev/null 2>&1 74 } 75 76 case "$1" in 77 start) 78 rh_status_q && exit 0 79 $1 80 ;; 81 stop) 82 rh_status_q || exit 0 83 $1 84 ;; 85 restart|configtest) 86 $1 87 ;; 88 reload) 89 rh_status_q || exit 7 90 $1 91 ;; 92 force-reload) 93 force_reload 94 ;; 95 status) 96 rh_status 97 ;; 98 condrestart|try-restart) 99 rh_status_q || exit 0 100 ;; 101 *) 102 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 103 exit 2 104 esac