Linux之nginx
1,nginx入门
想必我们大多数人都是通过访问网站而开始接触互联网的吧。我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务。
Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的 请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户。
目前能够提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等。其中,IIS(Internet Information Services,互联网信息服务)是 Windows 系统中默认的 Web 服务程序
2004 年 10 月 4 日,为俄罗斯知名门户站点而开发的 Web 服务程序 Nginx 横空出世。 Nginx 程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市 场,但 Nginx 最被认可的还当是系统资源消耗低且并发能力强,因此得到了国内诸如新浪、 网易、腾讯等门户站的青睐。
2,web服务器和web框架的关系
- web服务器(nginx):接收HTTP请求(列如www.pythonav.cn/xiaocang.jpg)并返回数据
- web框架(django,flask):开发web应用程序,处理接收到的数据
3,nginx是什么?
nginx是一个开源的,支持高性能的,高并发的www服务和代理服务软件,它是一个俄罗斯人lgor sysoev开发的,
作者将源代码开源出来供全球使用,
nginx比大哥apache性能先进的多,nginx占用的系统资源更少,支持更高的并发连接,有更高的访问频率,
nginx不但是一个优秀的web服务软件,还可以作为反向代理,
负载均衡,以及缓存服务使用
安装更为简单, 方便, 灵活
nginx可以说是非常强大了
4,安装
- 解决依赖关系编译依赖gcc环境,所以先要安装gcc环境
- yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
- 下载源码包
- wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
- 解压缩源码包
- tar -zxvf nginx-1.12.0
- 在当前路径下通过configure这个脚本文件执行,释放makefile, 然后指定安装nginx的路径
- ./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module
- 编译且编译安装
- make && make install
- 在/opt/nginxnginx1-12/安装好nginx的目录,找到一个sbin的文件夹,找到启动命令,然后启动nginx服务
- 检查安装后目录, ll/opt/nginx1-12
- 启动nginx的服务
- sbin/nginx
- 停止nginx服务
- sbin/nginx -s stop
- 平滑重启(修改nginx配置文件, 不重启服务就加载配置且生效)
- sbin/ndinx -s reload
- 检测ngnix.conf配置文件的语法正确性
- sbin/nginx -t
- 检查端口,进程,然后通过修改浏览器nginx页面, ip地址
- 虚拟主机:
-
server{ listen 80; server_name www.xuexue.com; # 这里是nginx通过这个参数,来定位不同的虚拟机代表访问nginx的匹配路径 location / { # 指明网页根目录在/data/xuexue/文件夹下 root /data/xuexue/; index index.html index.html } }
server{ listen 80; server_name www.xiaoxue.com; location / { # 指明网页根目录在/opt/html/文件夹下 root /data/xiaoxue; index index.html index.html; } }
- 重新加载nginx配置文件
- sbin/nginx -t # 检查语法
- sbin/nginx -s reload # 平滑重启
- 去data里边创建xuexue和xiaoxue2个文件夹放入不同的资料
-
写入本地dns解析文件,由于是在windows中的hosts中添加记录,hosts文件就是一个本地dns(就是域名转化成ip地址)强制解析的文件
- windows的hosts文件在:C/Windows/System32/driver/etc/hosts,写入如下信息
- 192.168.12.49 www.xuexue.com
- 192.168.12.49 www.xiaoxue.com
5,nginx状态模块功能
- 在配置文件中,添加一个参数即可
- location/status{
- stub_status on;
- }
- nginx访问日志功能
- 在配置中,打开注释, nginx.conf
-
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
-
- 参数详解:
- $remote_addr 记录客户端ip
- $remote_user 远程用户, 没有就是"-"
- $time_local 对应[14/Aug/2018:18:46:52 +0800]
- $request 对应请求信息"GET/favicon.ico HTTP/1.1"
- $status 状态码
- $body_bytes_sent 571字节 请求体的大小
- $http_referer 对应"-" 由于是直接输入浏览器就是-
- $http_user_agent 客户端身份信息
- $http_x_forword_for 记录客户端的来源真实ip
-
1.在配置文件中添加 nginx.conf server { listen 80; server_name www.s14huoying.com; location / { #指明网页根目录在/opt/html/文件夹下 root /data/huoying; index index.html index.htm; deny 192.168.12.120; } error_page 400 401 402 404 /40x.html; #当请求来自于wwww.s14huoying.com/status/ }