Nginx入门基础配置

一、Nginx介绍


Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev在建立的项目时,使用基于BSD许可,可以通过官网查看它的信息。

二、实验环境


操作系统:redhat 6.5
selinux iptables off

主机名IP安装服务功能说明
server110.10.10.1NginxWEB服务器
server210.10.10.2NginxWEB服务器
dream10.10.10.250测试访问WEB服务器

三、编译安装Nginx


1、下载地址

Nginx下载地址:http://nginx.org/en/download.html
Nginx RPM包下载地址:http://nginx.org/packages/rhel/7/x86_64/RPMS/(6的话把7换成6即可)
echo-nginx-module-0.61第三方模块下载链接:https://github.com/openresty/echo-nginx-module/tags
百度网盘地址: https://pan.baidu.com/s/1NJiPYioi_843WfqMAI4PsA 密码: wdf8

[root@server1 ~]# wget http://nginx.org/download/nginx-1.14.0.tar.gz
[root@server1 ~]# wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz

2、解压tar包

[root@server1 ~]# tar xf v0.61.tar.gz
[root@server1 ~]# tar xf nginx-1.14.0.tar.gz

3、安装Nginx

[root@server1 ~]# yum install -y gcc pcre-devel openssl-devel
[root@server1 ~]# cd nginx-1.14.0
[root@server1 nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_sub_module  --with-http_ssl_module --add-module=/root/echo-nginx-module-0.61/
[root@server1 nginx-1.14.0]# make && make install
[root@server1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

四、Nginx基础配置


1、修改用户最大链接数和进程数

[root@server1 ~]# useradd nginx
[root@server1 ~]# lscpu                 # 虚拟机修改设置即可,查看cpu个数

这里写图片描述

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

worker_connections:单个进程最大连接数(最大连接数=连接数*进程数)

[root@server1 ~]# vim /etc/security/limits.conf 
nginx           -       nofile          65535

2、查看结果

[root@server1 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server1 ~]# nginx 

这里写图片描述
这里写图片描述

3、修改端口范围

(1)通过命令修改(临时生效)
[root@server1 ~]# sysctl -a|grep range
[root@server1 ~]# sysctl -w net.ipv4.ip_local_port_range="1024 65535"

这里写图片描述

(2)修改配置文件(永久生效)
[root@server1 ~]# vim /etc/sysctl.conf           # 在配置文件中添加
net.ipv4.ip_local_port_range = 1024 65535

[root@server1 ~]# sysctl -p                      # 刷新
[root@server1 ~]# sysctl -a|grep range

这里写图片描述

4、文件传输设置

(1)配置修改
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

(2)参数介绍
include              ###文件扩展名与文件类型映射表
default_type         ###默认文件类型
sendfile             ###默认设置打开,从硬盘数据直接传输到协议栈。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime
tcp_nopush           ###当开启sendfile是,此参数开启才有效果。开启时会调用tcp_cork方法,数据包会等到最大时在一次传输出去,这样有利于解决网络堵塞。
tcp_nodelay          ###延时,等待数据多点在一起发,提高磁盘I/O
keepalive_timeout    ###连接超时

5、链接数限制

官网参考链接:https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-proxied-http/

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

limit_conn addr 1:限制每个ip访问lmit.html文件时候,最多只能有一个在线,否则其余的都要返回不可用(addr要跟 limit_conn_zone的变量对应)

6、启动Nginx

[root@server1 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server1 ~]# nginx 

这里写图片描述

7、测试

(1)建立发布目录
[root@server1 ~]# mkdir /usr/local/nginx/html/download
[root@server1 ~]# ls /usr/local/nginx/html/download
dream.jpg
(2)压力测试
[root@dream ~]# ab -c 10 -n 1000 http://10.10.10.1/download/dream.jpg

这里写图片描述

8、限制带宽

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

[root@server1 ~]# nginx -s reload

9、查看限制后的结果

###访问日志目录:/usr/local/nginx/logs/access.log
[root@dream ~]# ab -c 10 -n 1000 http://10.10.10.1/download/dream.jpg

这里写图片描述

10、限制请求速率

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

limit_req_zone:表示当相同的ip地址并且访问相同的uri,会导致进入limit req的限制(每秒1个请求)
burst=5 表示最大延迟请求数量不大于5。

[root@server1 ~]# nginx -s reload

11、查看结果

(1)压力测试
[root@dream ~]# ab -c 10 -n 1000 http://10.10.10.1/download/dream.jpg

这里写图片描述

(2)访问日志
[root@server1 ~]# cat /usr/local/nginx/logs/access.log

这里写图片描述

五、Nginx配置Https


1、配置nginx.conf

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

2、生成证书

[root@server1 ~]# cd /etc/pki/tls/certs/
[root@server1 certs]# make cert.pem
[root@server1 ~]# cp /etc/pki/tls/certs/cert.pem /usr/local/nginx/conf/

这里写图片描述

3、重新加载配置

[root@server1 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server1 ~]# nginx -s reload

4、测试

(1)加入hosts解析
[root@dream ~]# vim /etc/hosts
10.10.10.1  www.dream.com
(2)浏览器中进行访问
https://www.dream.com

这里写图片描述
这里写图片描述
这里写图片描述

六、Rewrite模块配置


1、rewrite模块

  • ! :表示取反

  • ~ :表示为区分大小写匹配

  • ~ :表示为不区分大小写匹配*

  • -f和!-f:用来判断是否存在文件

  • -d和!-d:用来判断是否存在目录

  • -e和!-e:用来判断是否存在文件或目录

  • -x和!-x:用来判断文件是否可执行

2、重定向配置

(1)临时从定向二种配置方法
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述
这里写图片描述

(2)查看结果
[root@dream ~]# curl -I www.dream.com

这里写图片描述

(3)补充

访问www.dream.com都添加为www.dream.com/api
如果是其他域名,http://www.wielun.com/api$1

        location / {
          root   /root/nginx1;
          index  index.html index.htm;
          rewrite ^(.*)$ /api$1 break;
        }

3、访问文件不同进行重定向

(1)配置nginx.conf

这里写图片描述

[root@server1 ~]# nginx -s reload
(2)建立默认发布文件
[root@server1 ~]# mkdir /www
[root@server1 ~]# echo www.dream.com >/www/index.html
[root@server1 ~]# mkdir /bbs
[root@server1 ~]# echo bbs.dream.com >/bbs/index.html
(3)设置Hosts解析

这里写图片描述

(4)测试

通过浏览器访问www.dream.com访问显示为:www.dream.com,www.dream.com/bbs访问显示:bbs.dream.com

[root@dream ~]# curl -I www.dream.com
[root@dream ~]# curl -I www.dream.com/bbs

这里写图片描述

4、限制直接通过IP进行访问

(1)配置nginx.conf
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

[root@server1 ~]# nginx -s reload
(2)结果

访问IP返回503错误,访问域名正常访问!!!

http://10.10.10.1/

这里写图片描述
这里写图片描述

(3)加入从定向

直接通过IP(10.10.10.1)访问会直接访问到百度!!!

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

[root@server1 ~]# nginx -s reload
[root@dream ~]# curl -I 10.10.10.1

这里写图片描述

5、限制具体IP访问

限制IP对域名www.dream.com访问,这里我们来限制server2(10.10.10.2)访问!!!

(1)配置nginx.conf
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

[root@server1 ~]# nginx -s reload
(2)测试
# curl -I www.dream.com

这里写图片描述
这里写图片描述
这里写图片描述

6、限制访问发布页面

(1)配置nginx.conf
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

[root@server1 ~]# nginx -s reload
(2)测试
[root@server1 ~]# echo "yayaya" >/www/dream.sh
[root@server1 ~]# chmod +x /www/dream.sh

这里写图片描述

7、Last和Break区别

break适用于文件下载,隐藏保护真实文件服务器。
Last接口地址改写,它会去匹配新的location

(1)配置nginx.conf
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

[root@server1 ~]# nginx -s reload
(2)查看结果

这里写图片描述

8、盗链配置

(1)server2中安装Nginx
[root@server1 ~]# scp -rp /usr/local/nginx/ root@10.10.10.2:/usr/local/
[root@server2 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
(2)配置
[root@server2 ~]# useradd nginx
[root@server2 ~]# vim /usr/local/nginx/conf/nginx.conf
user  nginx;
worker_processes  auto;
events {
    use epoll;
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile       on;
    tcp_nopush     on;
    tcp_nodelay    on;
    keepalive_timeout  65;
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    server {
        listen       80;
    	rewrite ^(.*) http://www.baidu.com;
	    location /download/ {
    	    limit_conn addr 1;
	        limit_req zone=one burst=5;
    	}
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
	    listen 80;
	    server_name  abc.dream.com;
	    location / {
	     	charset utf-8;
		    root /abc;
		    index index.html;
	    }
    }
}
(3)配置默认发布页面
[root@server2 ~]# mkdir /abc
[root@server2 ~]# vim /abc/index.html
<html>
<body>
<br>盗链图片</br>
<img src="http://www.dream.com/dream.jpg">
</body>
</html>

[root@server2 ~]# nginx -s reload
(4)查看结果

可以发现通过访问server2来访问到server1中的图片!!!

[root@server1 ~]# cp /usr/local/nginx/html/download/dream.jpg /www/   # 复制照片到发布目录
[root@dream ~]# cat /etc/hosts

http://abc.dream.com/              # 真机浏览器

这里写图片描述
这里写图片描述

(5)配置盗链

expires 30:过期时间30天!!!

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

(6)重新加载Nignx
[root@server1 ~]# ls /bbs/               # 在/bbs目录中添加照片
daolian.jpg  index.html

[root@server1 ~]# nginx -s reload

这里写图片描述

七、stub_status模块


1、查看是否安装此模块

[root@server1 ~]# nginx -V             # V:大写

这里写图片描述

2、修改配置

[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf

这里写图片描述

[root@server1 ~]# nginx -s reload

3、查看结果

http://bbs.dream.com/status

这里写图片描述

八、代理本地文件夹


对指定目录做代理及显示文件夹目录

1、修改配置文件

...
http {
    server {
        listen       80;
        server_name  localhost;
        # 配置跨域
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers X-Requested-With;
        add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

        location /share {
            # alias   /home/;
            root /home;
            charset utf-8; 
            autoindex on;                // 开启目录浏览功能
            autoindex_format html;       // 以html风格将目录展示在浏览器中
            # 下面两项可以不配置
            autoindex_exact_size off;    // 关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b; 
            autoindex_localtime on;      // 开启以服务器本地时区显示文件修改日期
        }
    }
}

2、访问

http://localhost/share

在这里插入图片描述

九、location斜线


1、环境说明

Nginx服务器:10.10.10.1
代理后端服务:10.10.10.1:8080
访问地址:http://10.10.10.1/api/v1/wielun

2、Proxy不接地址

(1)配置一

location /api/ {
   proxy_pass http://10.10.10.1:8080/;
}
实际访问:http://10.10.10.1:8080/v1/wielun

(2)配置二

location /api {
   proxy_pass http://10.10.10.1:8080/;
}
实际访问:http://10.10.10.1:8080//v1/wielun

(3)配置三

location /api/ {
   proxy_pass http://10.10.10.1:8080;
}
实际访问:http://10.10.10.1:8080/api/v1/wielun

(4)配置四

location /api {
   proxy_pass http://10.10.10.1:8080;
}
实际访问:http://10.10.10.1:8080/api/v1/wielun

3、Proxy接地址

(1)配置一

location /api/ {
   proxy_pass http://10.10.10.1:8080/json/;
}
实际访问:http://10.10.10.1:8080/json/v1/wielun

(2)配置二

location /api {
   proxy_pass http://10.10.10.1:8080/json/;
}
实际访问:http://10.10.10.1:8080/json//v1/wielun

(3)配置三

location /api/ {
   proxy_pass http://10.10.10.1:8080/json;
}
实际访问:http://10.10.10.1:8080/jsonv1/wielun

(4)配置四

location /api {
   proxy_pass http://10.10.10.1:8080/json;
}
实际访问:http://10.10.10.1:8080/json/v1/wielun
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wielun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值