记忆系列-Nginx自己的基本操作
本文最后更新于 1975 天前,其中的信息可能已经有所发展或是发生改变。

Nginx记忆的笔记怕忘记~另外出售erbi.me域名~有需要的吗?


基本的操作

启动、停止nginx
cd /usr/local/nginx/sbin/
启动
./nginx
加载制定配置文件
./nginx -c xxx.conf(参数-c 指定配置文件路径,如果不加-c参数,Nginx会默认加载其安装目录的conf子目录的nginx.conf文件)
测试Nginx配置是否正确
./nginx -t
nginx服务停止
./nginx -s stop //kill -9 pid
./nginx -s quit

优雅重启
./nginx -s reload
查看nginx的进程号
ps -ef | grep nginx
杀死
killall -9 nginx

虚拟主机配置

首先下面是一个最简单的虚拟主机配置:

http{
	server{
		listen 80;
		server_name _ *;
		access_log logs/server_name.access.log  combined;
		location / {
			index index.html;
			root /data0/htdocs/htdosc_servername;
		}
	}
}

所以,和apche一样,可以配置多种类型虚拟主机:

1.基于IP的

http{
	server{
		#监听的ip和端口
		listen 192.168.1.88:80;
		#主机名称
		server_name 192.168.1.88;
		#访问的日志存放路径
		access_log logs/server1.access.log  combined;
		location / {
			index index.html;
			root /data0/htdocs/server1;
		}
	}
	server{
		#监听的ip和端口
		listen 192.168.1.89:80;
		#主机名称
		server_name 192.168.1.89;
		#访问的日志存放路径
		access_log logs/server2.access.log  combined;
		location / {
			index index.html;
			root /data0/htdocs/server2;
		}
	}
	server{
		#监听的ip和端口
		listen 192.168.1.90:80;
		#主机名称
		server_name 192.168.1.90;
		#访问的日志存放路径
		access_log logs/server3.access.log  combined;
		location / {
			index index.html;
			root /data0/htdocs/server3;
		}
	}
}

2.基于域名的

http{
	server{
		#监听的ip和端口
		listen 80;
		#主机名称
		server_name 199604.com;
		#访问的日志存放路径
		access_log logs/199604.com.access.log  combined;
		location / {
			index index.html;
			root /data0/htdocs/199604.com;
		}
	}
	server{
		#监听的ip和端口
		listen 80;
		#主机名称
		server_name guoliangjun.com;
		#访问的日志存放路径
		access_log logs/guoliangjun.com.access.log  combined;
		location / {
			index index.html;
			root /data0/htdocs/guoliangjun.com;
		}
	}
	server{
		#监听的ip和端口
		listen 80;
		#主机名称
		server_name erbi.me;
		#访问的日志存放路径
		access_log logs/erbi.me.access.log  combined;
		location / {
			index index.html;
			root /data0/htdocs/erbi.me;
		}
	}
}

3.基于端口的

端口就是把监听的端口更改一下就OK了

日志定时切割

首先需要认识一下 access_log的语法:

access_log path[format [buffer=size|off]]

acess_log off;关闭日志

如果需要使用默认的combined格式记录日志:

access_log /logs/guoliangjun.com.access.log;

或者

access_log /logs/guoliangjun.com.access.log combined;

认识access_log参数之后,那么就是解释一下Nginx是不支持像Apache一样使用cronolog来轮转日志,但是可以手动/自动(定时shell)采用实现日志文件日期的切割

先手动:

mv /data/logs/access.log /data/logs/20190824.log
kill -USR1 Nginx主进程号(kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`)
Nginx主进程号我们是可以用cat pid文件获取到进程号哒~

后shell定时执行:

设置一个定时任务,每天凌晨00:00开始备份昨天的日志,然后重新开启一个新的日志文件。具体实现如下:

vi nginx_logbak.sh

#!/bin/bash
YESTERDAY=$(date -d "yesterday" +"%Y-%m-%d")
 
LOGPATH=/usr/local/nginx/logs/
 
PID=${LOGPATH}nginx.pid
 
mv ${LOGPATH}access.log ${LOGPATH}access-${YESTERDAY}.log
 
mv ${LOGPATH}error.log ${LOGPATH}error-${YESTERDAY}.log

kill -USR1 `cat ${PID}`

变更shell脚本为可执行文件,并将脚本设置为定时任务启动脚本,放入crontab中。

chmod +x nginx_logbak.sh

crontab -e
0 0 * * * /bin/bash /usr/local/nginx/logs/nginx_logbak.sh

Nginx自动列目录配置

有时候打开一个页面自动会显示列目录,但前提可能需要指定的index页面不存在才行,我们只需要加载autoindex即可:

location / {
			index index.html;
			root /data0/htdocs/htdosc_servername;
			autoindex on;
		}

负载均衡的http upstream

upstream主要提供了简单方法来实现在轮询和客户端IP之间的后端服务器负载均衡,也可以对服务器进行监控检查,简单例子如下:

#user  nobody;
worker_processes 1;
events {
    worker_connections  1024;
}
http {
    upstream myip{
		server 121.42.102.97 weight=2;
		server 111.161.64.40 max_fails=3 fail_timeout=30s;
	}
	server{
		listen 80;
		location / {
			proxy_pass http://myip;
		}
	}
}

评论

  1. Windows Chrome 76.0.3809.100
    5 年前
    2019-8-30 15:26:25

    我切日志都是靠logrotate,从没担心过不能切的。
    话说为什么不用systemd来管理服务?

    • 博主
      石樱灯笼
      Windows Chrome 69.0.3497.100
      5 年前
      2019-8-31 12:15:03

      因为入门,最近失业,上家公司也没有用到nginx实现负载均衡~而是直接tomcat,没实操过~呜呜

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇