Nginx服务基础
Nginx的英文官方网站是http://nginx.org,在这里可以查看Nginx的各个软件版本信息。Nginx软件有三种版本:稳定版、开发版和历史稳定版。开发版更新较快,包含最新的功能和bug的修复,但同时也可能会遇到新的bug,开发版的更新一旦稳定下来,就会被纳入稳定版中。但是,有些新功能不会被加入到旧的稳定版中去。稳定版本的更新较慢,但是软件bug也会较少,可以作为企业生产环境的首选,因此通常建议选择使用稳定版。当然,在实际工作中,选择稳定版时,尽量避免使用最新的版本,选择比已出来的最新版晚6~10个月的版本比较好。
1. 安装Nginx所需的依赖包。
分别是pcre-devel、openssl-devel包
pcre库是为了使Nginx支持具备URI重写功能的rewrite模块,如果不安装pcre库,则Nginx无法使用rewrite模块功能,Nginx的rewrite模块功能几乎是企业应用必须的。
openssl是Nginx在使用HTTPS服务的时候要用到此模块,如果不安装openssl,安装Nginx的过程中会报错。
# 安装方式
yum install pcre pcre-devel -y yum install openssl openssl-devel -y
# 检查安装结果
rpm -qa pcre pcre-devel rpm -qa openssl openssl-devel
2. 开始安装。
操作命令如下:
[root@120_234_2_74_centos7 ~]# cd /tools/ [root@120_234_2_74_centos7 tools]# wget -q http://nginx.org/download/nginx-1.12.1.tar.gz [root@120_234_2_74_centos7 tools]# useradd nginx -s /sbin/nologin -M [root@120_234_2_74_centos7 tools]# tar xf nginx-1.12.1.tar.gz [root@120_234_2_74_centos7 tools]# cd nginx-1.12.1/ [root@120_234_2_74_centos7 nginx-1.12.1]# ./configure --user=nginx --group=nginx --prefix=/app/nginx-1.12.1/ --with-http_stub_status_module --with-http_ssl_module [root@120_234_2_74_centos7 nginx-1.12.1]# make && make install
# 讲Nginx安装路径通过软连接的方式更改为/app/nginx/, 方便人员使用。安装时制定版本号路径是为了便于查看区分当前使用的Nginx版本,也方便以后升级。
[root@120_234_2_74_centos7 nginx-1.12.1]# ln -sv /app/nginx-1.12.1/ /app/nginx
3. 启动并检查安装结果。
(1)启动前检查配置文件语法
[root@120_234_2_74_centos7 tools]# /app/nginx/sbin/nginx -t nginx: the configuration file /app/nginx-1.12.1//conf/nginx.conf syntax is ok nginx: configuration file /app/nginx-1.12.1//conf/nginx.conf test is successful
(2)启动Nginx服务
[root@120_234_2_74_centos7 tools]# /app/nginx/sbin/nginx
(3)查看Nginx服务对应的端口是否成功启动
[root@120_234_2_74_centos7 tools]# lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 6256 root 6u IPv4 21943 0t0 TCP *:http (LISTEN) nginx 6257 nginx 6u IPv4 21943 0t0 TCP *:http (LISTEN)
也可以通过ss -lnt | grep 80查看:
[root@120_234_2_74_centos7 tools]# ss -lnt | grep 80 LISTEN 0 128 *:80 *:*
(4)检查Nginx启动的实际效果
打开浏览器输入http://x.x.x.x,然后回车,如看到如图的内容,就表示Nginx已经启动了。
注意,nginx -s reload 原理:
新的请求会放到新的工作线程上。
旧的请求会一直处理,直到结束完旧的任务。
4.Nginx日志切割
Nginx 是一个非常轻量的 Web 服务器,体积小、性能高、速度快等诸多优点。但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件容量非常大,不便于管理。
脚本内容:
#/bin/bash #-----------desc----------------------- # desc : nginx cut log # create : 2017-11-21 # update : 2017-11-21 # version: 1.0.0 # author : luchuangao #-----------desc----------------------- # 设置日志文件存放目录 logs_path=/usr/local/nginx/logs/ # 设置pid文件 pid_path=/usr/local/nginx/logs/nginx.pid # 重命名日志文件 mv ${logs_path}access.log ${logs_path}access_$(date -d yesterday +%Y%m%d).log mv ${logs_path}error.log ${logs_path}error_$(date -d yesterday +%Y%m%d).log # 向nginx主进程发信号重新打开日志 kill -USR1 `cat ${pid_path}`
其他操作:
# 添加计划任务 crontab -e # nginx cut log 0 0 * * * /bin/bash /shell/nginx/nginx-cut-log.sh # 重启crond任务 systemctl restart crond
5. 添加代理认证
yum install httpd-tools -y #第一次需要加-c htpasswd -bc /usr/local/nginx/conf/htpasswd.users luchuangao 123456 #第二次需要把-c去掉,否则会覆盖原有得。 htpasswd -b /usr/local/nginx/conf/htpasswd.users luchuangao 123456 #查看tail /usr/local/nginx/conf/htpasswd.users #... #授权 chown nginx.nginx /usr/local/nginx/conf/htpasswd.users #重启服务 /usr/local/nginx/sbin/nginx -s reload 添加进nginx配置文件: vim /usr/local/nginx/conf/conf.d/kibana5612.conf upstream kibana_server { server 127.0.0.1:5601 weight=1 max_fails=3 fail_timeout=60; } server { listen 80; server_name www.kibana5611.com; auth_basic "Restricted Access"; auth_basic_user_file /usr/local/nginx/conf/htpasswd.users; location /{ proxy_pass http://kibana_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
一键安装
yum install pcre pcre-devel -y yum install openssl openssl-devel -y cd /usr/local/src/ wget -q http://nginx.org/download/nginx-1.12.1.tar.gz useradd nginx -s /sbin/nologin -M tar xf nginx-1.12.1.tar.gz cd nginx-1.12.1/ ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.12.1/ --with-http_stub_status_module --with-http_ssl_module make && make install ln -sv /usr/local/nginx-1.12.1 /usr/local/nginx /usr/local/nginx/sbin/nginx -t
启动脚本
vim /etc/init.d/nginx #!/bin/bash # chkconfig: - 85 15 PATH=/usr/local/nginx DESC="nginx daemon" NAME=nginx DAEMON=$PATH/sbin/$NAME CONFIGFILE=$PATH/conf/$NAME.conf PIDFILE=$PATH/logs/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME set -e [ -x "$DAEMON" ] || exit 0 do_start() { $DAEMON -c $CONFIGFILE || echo -n "nginx already running" } do_stop() { $DAEMON -s stop || echo -n "nginx not running" } do_reload() { $DAEMON -s reload || echo -n "nginx can't reload" } case "$1" in start) echo -n "Starting $DESC: $NAME" do_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" do_stop echo "." ;; reload|graceful) echo -n "Reloading $DESC configuration..." do_reload echo "." ;; restart) echo -n "Restarting $DESC: $NAME" do_stop do_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2 exit 3 ;; esac exit 0
操作命令:
#设置执行权限 chmod a+x /etc/init.d/nginx #注册成服务 chkconfig --add nginx #设置开机启动 chkconfig nginx on #重启, 查看nginx服务是否自动启动 shutdown -h 0 -r netstat -apn|grep nginx #对nginx服务执行停止/启动/重新读取配置文件操作 #启动nginx服务 systemctl start nginx.service #停止nginx服务 systemctl stop nginx.service #重启nginx服务 systemctl restart nginx.service #重新读取nginx配置(这个最常用, 不用停止nginx服务就能使修改的配置生效) systemctl reload nginx.service
nginx 80端口重定向到443端口
https://blog.csdn.net/m0_37886429/article/details/72271983