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-devel2. 開始安裝。
操作命令如下:
[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/nginx3.?啟動并檢查安裝結果。
(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 crond5. 添加代理認證
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.servicenginx 80端口重定向到443端口
https://blog.csdn.net/m0_37886429/article/details/72271983
?
轉載于:https://www.cnblogs.com/luchuangao/p/7824950.html
總結
- 上一篇: 第四章 爬取西刺免费代理ip 并应用到s
- 下一篇: 博弈论-SG函数