Nginx的基本配置

118 阅读4分钟
原文链接: www.jianshu.com
本文是从网络观看视频学习进行的整理。
all.jpg

一、Nginx的配置文件总览!

title.png
1.1.png
我们先来查看一下nginx配置文件:

cd nginx.conf vi nginx.conf

1.2.png
1.3.png
1.4.png

二、Nginx的虚拟主机配置-1

title2.png
2.1.png
2.1.1.png
查看ip地址,使用的是linux系统,控制台输入ifconfig,显示如下:
2.1.2.png

可看到我们查到有两个网卡:eth0lo

  • eth0 网卡信息我们可以看到为:
    IP:192.168.147.128
    Bcast(BroadCast):192.168.147.255
    Mask(子网掩码):255.255.255.0
  • 然后根据eth0这个设备,下面进行IP地址的配置(注意查看配图的终端命令),并查看ip
2.1.3.png
然后我们需要进行虚拟主机的配置

我们现在将进行虚拟主机的配置,我们可以看到现在的设备只要一个eth0,但是虚拟主机有非常多个,因此我们从这个设备中,分出子设备,那么,如何进行分? 看图最后两行(注意终端命令的变化):

2.1.4.png
输入 ifconfig,查看分设备:
2.1.5.png

可以看到,我们已经成功配置好了第一个分设备地址,那么接下来,我们将配置第二个分设备地址(与配第一个步骤相同):
命令不一致地方为:~~~eth0:2 198.168.1.17~~~
于是,第二个分设备配好。

2.2.png

在系统自带的nginx.conf文件下直接进行修改不太友好、不安全,于是我们在新建文件(xnzj.conf)进行虚拟主机配置(避免将重要文件崩溃),配置好之后,加载我们进行配置的文件即可。

touch xunizhuji.conf
vi xunizhuji.conf
#最简框架,不可或缺内容如下:
2.2.1.png

我们虚拟主机的配置是在http下面的server中的。分别进行192.168.1.7192.168.1.7的配置。


二、Nginx的虚拟主机配置-2

title3.png

access.log 为日志文件的存放目录
location为本地项目目录,访问的地址为 html/server1/index.html
配置如下:(注意:红框内倒数第四行少一个单词:index)

3.1.png

需要在文件html下分别新建server1/index.htmlss2/index.html,才能被访问到。为了便于测试,我们分别在两个html文件中输入文本内容:
1111111111111di2gexnzj!

  #创建好文件后,我们在终端输入命令加载nginx
  /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/xnzj.conf
  #配置文文件加载完毕!

输入不同ip后,效果图:


3.2.png
3.3.png

四、Nginx的日志文件配置

title4.png
4.1.png

log_format
编辑主配置文件(demo为在主配置文件):vi nginx.conf

4.2.png

仔细查看红框中的红色部分,我们对其配置文件内容进行解析:

  • $remote_addr:客户端ip地址
  • $remote_user:客户端用户名
  • $request :请求的URL,用户请求的地址
  • $status:请求状态(请求中、请求完毕)
  • $body_bytes_sent:给用户返回数据的字节数
  • $http_referer:源网页
  • $http_user_agent:客户端浏览器的对应信息
  • $http_x_forwarded_for:客户端的IP地址,与remote_addr相似
  • 若想自定义日志文件,可根据以上内容进行配置。
4.3.png
vi nginx.conf
4.4.png

access.log off:关闭日志


4.5.png
手动切割(便于理解日志切割的步骤)

我们之前的配置,可知道我们的日志文件放在access.log日志文件中. 我们现在进行切割,以前的日志记录我们放到一个目录中,新的日志记录我们让它重新存储到access.log文件中。

#首先将我们旧的文件移出来(第一步:备份)
  mv access.log   20180927.log(自定义名字)
#然后进行文件的切割(第二部:新开)
  kill USR1  (nginx服务的进程号[` ps -ef |grep nginx `查看])
#于是实现了日志文件的切割
自动切割(自动实现23:59切割)---crontab[定时执行某个文件]
  • 首先新建一个批处理文件
    在logs文件中,新建:touch cutlog.sh
  • 然后vi cutlog.sh:内容如图
4.6.png

:wq保存退出后,终端输入命令:crontab e编辑我们定时执行的文件:

4.7.png

意思就是:每天在23:59分的时候定时执行这个文件! 这样就实现了nginx的定时切割。


五、Nginx的缓存配置和其它配置

title5.png
5.1.png

进入配置文件,vi nginx.conf

5.1.1.png

对图片以及CSS文件的缓存,缓存时才分别为30天、1小时

5.2.png
5.2.1.png
  • gzip on --开启gzip压缩功能
  • gzip_min_length 1k --对于小于1k的文件不进行gzip压缩处理
  • gzip_buffers 4 16k --压缩成的结果申请内存资源(缓存资源)
  • gzip_http version 1.1 --Http版本为1.1才可进行压缩
  • gzip_vary on --服务器与客户端浏览器都需支持gzip压缩技术,客户端不支持,不进行压缩处理
5.3.png
5.3.1.png

如有错误,欢迎指正。 个人公众号:【六个周】,欢迎订阅!