nginx服务
Posted 森森2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx服务相关的知识,希望对你有一定的参考价值。
nginx--->是一个软件,web软件,提供web服务
nagios监控用的
apache与nginx都是http协议
最老是apache,很大很全很稳定,太重
针对apache太重的问题,nginx就是轻便装,
nginx在并发上采用了网络io模型和反向代理很好
网络io:网络传输数据,
nginx用epoll模型,使nginx处理速度快,并发做得好(同时处理多个任务)
把CentOS-相关的yum源都移到yum源文件夹中
[root@localhost yum.repos.d]# mv /root/aa/CentOS-* .
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo
[root@localhost yum.repos.d]#
清缓存
[root@localhost yum.repos.d]# yum clean all
安装nginx的扩展源
[root@localhost yum.repos.d]# yum install epel-release –y
安装完毕后看到的yum源:
centos-7.repo CentOS-fasttrack.repo epel.repo
CentOS-Base.repo CentOS-Media.repo epel-testing.repo
CentOS-CR.repo CentOS-Sources.repo httpd.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
安装nginx
yum install nginx -y
查看接收目录
vim /etc/nginx/nginx.conf
从上面的程序,我们看到目录是:
root /usr/share/nginx/html
尝试执行看看,先建个目录和文件/usr/share/nginx/html/a/b/c.txt
[root@bogon ~]# mkdir /usr/share/nginx/html/a/b/ -p
[root@bogon ~]# echo \'welecome boy\'>/usr/share/nginx/html/a/b/c.txt
要让上面的生效,就要重启
[root@bogon ~]# systemctl restart nginx
这里有个问题:restart是先执行
systemctl stop nginx
再执行
systemctl start nginx可能停了就起不来,网站就挂了。
为了减少风险,我只是重新加载,reload就行,只读新内容
看看启动状态
[root@bogon ~]# systemctl status nginx
查看我的IP:ifconfig
192.168.88.128:
在浏览器输入http://192.168.88.128:80/a/b/c.txt
发现连接不上,404页面
关防火墙
systemctl stop firewalld
再次连接,有结果:
原理是
Nginx会访问它的配置文件,找到根目录
nginx----------------ànginx.conf----------------à/usr/share/nginx/html/a/b/c.txt------走http协议------看到内容
如果开机也不想开防火墙,则
systemctl disable firewalld
开机启动防火墙
systemctl enable firewalld
开机启动nginx
systemctl enable nginx
操作防火墙(是否内核防火墙,公司往往有硬件防火墙)
Iptables
Uri地址是唯一的,url是百度,uri是我通过百度然后下载到本地,文件通过http协议下载到我这里
http://202.102.10.10:80/a/b/c.txt
http://-------->server端是基于http协议给client发数据的
202.102.10.10:80--->定位到全世界范围内唯一一款软件是谁
/a/b/c.txt--->/usr/share/nginx/html/a/b/c.txt(软件的根)
补充:
location是url地址、/是统一位置在哪里,如果不写的话,就默认/usr/share/nginx/html;,也可以写一个目录
root /var/www/html;
location / { root /var/www/html
}
修改完重启:
systemctl restart nginx
这里有个问题:restart是先执行
systemctl stop nginx
再执行
systemctl start nginx可能停了就起不来,网站就挂了。
为了减少风险,我只是重新加载,reload就行,只读新内容
[root@localhost ~]# mkdir -p /var/www/html/
[root@localhost ~]# echo \'123453434342323\'> /var/www/html/index.html
在访问之前的路径就404
因为默认路径已经修改为/var/www/html/
http://192.168.88.128/index.html
如果我把/index.html去掉,发现也可以访问
location是url地址、/是统一位置在哪里,如果不写的话,就默认/usr/share/nginx/html;,也可以写一个目录
root /var/www/html;
/是如果root /var/www/html不带后面的东西,就默认index.html,如果没有index.html,就访问index.htm,如果也没有,就访问index.a
location / { root /var/www/html
index index.html index.htm index.a;
}
网站往往都默认打开首页:
index.html
我尝试默认该为a.txt,如下:
[root@localhost ~]# vim /etc/nginx/nginx.conf
location / { root /var/www/html
index a.txt index.html index.htm index.a;
}
创建文件a.txt
[root@localhost ~]# touch /var/www/html/a.txt
[root@localhost ~]# echo \'I love you\' > /var/www/html/a.txt
[root@localhost ~]# systemctl reload nginx
访问记录
tail -f /var/log/nginx/access.log
192.168.88.1 - - [18/Nov/2017:13:50:04 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" "-"
客户端写的日志
log_format main \'$remote_addr - $remote_user [$time_local] "$request" \'
\'$status $body_bytes_sent "$http_referer" \'
\'"$http_user_agent" "$http_x_forwarded_for"\';
我的IP
192.168.88.1=\'$remote_addr
-=-
-=$remote_user
[18/Nov/2017:13:50:04 +0800]= [$time_local]
"$request"是请求:"GET / HTTP/1.1" http1.1是最新的协议
$status=304,如果200是访问成功
$body_bytes_sent 0个字节,14是14个字节
$http_referer ="-"http协议,referer可以之前上一个页面,如果一个教学资源需要在看了广告后才能下载,而一些人盗链了,不用广告也可以下载,那referer就是他的页面,我们发现如果referer不是我们的页面的话,就要先打开我们的页面,才能下载。
$http_user_agent:我的浏览器
$http_x_forwarded_for
可以自己定义日志格式:
log_format main \'$remote_addr - $remote_user [$time_local] "$request" \'
\'$status $body_bytes_sent "$http_referer" \'
\'"$http_user_agent" "$http_x_forwarded_for"\';
log_format aaa \'$remote_addr - [$time_local] "$request"\';
access_log /var/log/nginx/access.log aaa;
以上是关于nginx服务的主要内容,如果未能解决你的问题,请参考以下文章