Nginx配置详解

一、配置nginx的虚拟主机

虚拟主机技术主要应用于HTTP(Hypertext Transfer Protocol,超文本传输协议)服务,提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。

1、编辑nginx的配置文件,生成虚拟主机:

125 
126 server {
127         listen 80;
128         server_name  www.westos.org;
129     
130         location / {
131         root    /www1;
132         index index.html;
133         }
134 }
135 server {
136         listen 80;
137         server_name bbs.westos.org;
138 
139         location / {
140         root    /www2;
141         index   index.html;
142         }
143 }
144 }

建立/www1和/www2,并且编写index.html

[root@server1 conf]# mkdir /www1
[root@server1 conf]# mkdir /www2
[root@server1 conf]# cd /www1/
[root@server1 www1]# vim index.html
<h1>www.westos.org</h1>
[root@server1 conf]# cd /www2/
[root@server1 www2]# vim index.html
<h1>bbs.westos.org</h1>

在物理主机中测试
首先加解析:

[root@foundation66 kiosk]# vim /etc/hosts

在这里插入图片描述
测试:
在这里插入图片描述

二、实现https加密

1、编辑nginx的配置文件

107         server {
108             listen       443 ssl;
109             server_name  www.westos.org;	#访问www.westos.org
110 
111             ssl_certificate      cert.pem;		#https认证的锁和钥匙
112             ssl_certificate_key  cert.pem;
113 
114             ssl_session_cache    shared:SSL:1m;
115             ssl_session_timeout  5m;
116 
117             ssl_ciphers  HIGH:!aNULL:!MD5;
118             ssl_prefer_server_ciphers  on;
119 
120             location / {
121                 root   /www1;	#访问本地/www1的index.html文件
122                 index  index.html index.htm;
123             }
124         }
[root@server1 conf]# nginx -t 	#检测语法
[root@server1 conf]# nginx -s reload	#重新加载 nginx服务

2、测试访问:https://www.westos.org

在这里插入图片描述
这个出现说明:你的网站存在问题,是继续还是返回。可以点击Advanced,修改安全证书
在这里插入图片描述
再次访问:
在这里插入图片描述

三、重定向

1、访问www.westos.org时调转到https://www.westos.org

nginx配置文件的修改

[root@server1 conf]# vim nginx.conf
126 server {
127         listen 80;
128         server_name  www.westos.org;
129         rewrite ^/(.*)$ https://www.westos.org;		#当在这行后面加入permanent,访问时就会出现301 Moved Permanently永久重定向
130 
131         location / {	#也可以把这个location注释调,因为在配置文件http服务那块已经写过,当这里调用location本地时,可以直接调用http服务的location
132         root    /www1;
133         index index.html;
134         }
135 }
[root@server1 conf]# nginx -s reload

在这里插入图片描述

[root@server1 conf]# vim nginx.conf
126 server {
127         listen 80;
128         server_name  www.westos.org;
129         rewrite ^/(.*)$ https://www.westos.org/$1 permanent;	#可以访问www.westos.org的下级目录
130 
[root@server1 conf]# nginx -s reload

在这里插入图片描述

2、将westos.org重定向到www.westos.org

(1)修改配置文件
[root@server1 conf]# vim nginx.conf
126 server {
127         listen 80;
128         server_name  www.westos.org westos.org;
129         rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
130 
[root@server1 conf]# nginx -s reload
(2)在物理主机中加入本地解析
[root@foundation66 kiosk]# vim /etc/hosts

在这里插入图片描述

(3)测试

在这里插入图片描述
在这里插入图片描述

3、访问~/bbs时重定向到https://bbs.westos.org

[root@server1 conf]# vim nginx.conf
126 server {
127         listen 80;
128         server_name  www.westos.org westos.org;
129         rewrite ^/bbs$ http://bbs.westos.org;		#访问以bbs结尾的网址时跳转到http://bbs.westos.org
130         #rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
131 
[root@server1 conf]# nginx -s reload

在这里插入图片描述

[root@server1 conf]# vim nginx.conf
126 server {
127         listen 80;
128         server_name  www.westos.org westos.org;
129         rewrite ^/bbs$ http://bbs.westos.org;
130         rewrite   ^/bbs/(.*)$ http://bbs.westos.org/$1;	#可以访问以bbs的下级目录结尾的网址
131
[root@server1 conf]# nginx -s reload

在这里插入图片描述

4、反向重定向bbs.westos.org—> https://www.westos.org/bbs/

[root@server1 conf]# vim nginx.conf
126 server {
127         listen 80;
128         server_name  www.westos.org westos.org;
129         #rewrite ^/bbs$ http://bbs.westos.org;
130         #rewrite   ^/bbs/(.*)$ http://bbs.westos.org/$1;
131         #rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
132 
133         location / {
134         root    /www1;
135         index index.html;
136         }
137 }
138 server {
139         listen 80;
140         server_name bbs.westos.org;
141         rewrite ^(.*)$ http://www.westos.org/bbs$1;
142 #       location / {
143 #       root    /www2;
144 #       index   index.html;
145 #       }
146 }
147 }
[root@server1 conf]# nginx -s reload

在这里插入图片描述

四、防止恶意

1、返回500报错

修改配置文件

[root@server1 conf]# vim nginx.conf
 40     server {
 41         listen       80;
 42         server_name  _;		#当所有主机到达访问默认页面,返回500报错
 43         return 500;
 44 
 [root@server1 conf]# nginx -s reload

在这里插入图片描述

(2)跳转到指定站点

[root@server1 conf]# vim nginx.conf
 40     server {     
 41         listen       80;
 42         server_name  _;
 43         #return 500;
 44         rewrite ^(.*) http://www.westos.org;	#所有主机到达时,重定向到指定站点
 45         #charset koi8-r;
  [root@server1 conf]# nginx -s reload

在这里插入图片描述

五、访问控制

[root@server1 conf]# vim nginx.conf
127 server {
128         listen 80;
129         server_name  www.westos.org westos.org;
130         #rewrite ^/bbs$ http://bbs.westos.org;
131         #rewrite   ^/bbs/(.*)$ http://bbs.westos.org/$1;
132         #rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
133 
134         location / {
135         root    /www1;
136         index index.html;
137         allow 172.25.66.250;	#只允许物理主机访问,不允许其他主机访问
138         deny all;		
139         }
140 }
[root@server1 conf]# nginx -s reload

测试:curl -I www.westos.org
在这里插入图片描述
在这里插入图片描述
拒绝客户端上传照片

首先新建一个images目录,
[root@server1 ~]# cd  /www1
 [root@server1 www1]# mkdir images
[root@server1 conf]# vim nginx.conf #编辑配置文件,/usr/local/lamp/nginx/conf
127 server {
128         listen 80;
129         server_name  www.westos.org westos.org;
130         #rewrite ^/bbs$ http://bbs.westos.org;
131         #rewrite   ^/bbs/(.*)$ http://bbs.westos.org/$1;
132         #rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
133 
134         location / {
135         root    /www1;
136         index index.html;
137         allow 172.25.66.250;
138         deny all;
139         }
140         location ~ ^/images/.*\.(jpg|gif)$ {	#访问本地/images目录下以(jpg/gif)结尾的照片
141                 deny all;	#拒绝所有客户端上传照片
142         }
[root@server1 conf]# nginx -t		#检测语法
[root@server1 conf]# nginx -s reload	#重新加载服务

在这里插入图片描述

六、对客户端并发量,下载速度的限制

1、限制客户端请求的并发量

[root@server1 nginx]# cd /www1
[root@server1 www1]# mkdir download
[root@server1 www1]# cd images
[root@server1 images]# cp vim.jpg  ../download 
[root@server1 nginx]# vim conf/nginx.conf
 38     #gzip  on;
 39         limit_conn_zone $binary_remote_addr zone=addr:10m;	#限制带宽
 127 server {
140         location ~ ^/images/.*\.(jpg|gif)$ {
141                 deny all;
142         }
143         location /download/ {
144                 root /www1;
145                 limit_conn addr 1;	#并发量为1
146         }
147 }
[root@server1 nginx]# nginx -t
[root@server1 nginx]# nginx -s reload

在物理主机中做压力测试

[root@foundation66 kiosk]# ab -c1 -n 10 http://www.westos.org/download/vim.jpg

在这里插入图片描述
在这里插入图片描述

[root@foundation66 kiosk]# ab -c10 -n 10 http://www.westos.org/download/vim.jpg

在这里插入图片描述
在这里插入图片描述

2、限制客户端下载速率

[root@server1 nginx]# vim conf/nginx.conf
 38     #gzip  on;
 39         limit_conn_zone $binary_remote_addr zone=addr:10m;
 40         limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;		#限制下载速率
 41 
129 server {
142         location ~ ^/images/.*\.(jpg|gif)$ {
143                 deny all;
144         }
145         location /download/ {
146                 root /www1;
147                 limit_conn addr 1;
148                 limit_req zone=one burst=5;
149                 limit_rate 50k;	#限制速率为50k
150         }
151 }
[root@server1 nginx]# nginx -t
[root@server1 nginx]# nginx -s reload

七、去掉不必要的日志记录

[root@server1 nginx]# vim conf/nginx.conf
access_log off;

八、防盗链机制

在server6的apache默认发布文件下编辑index.html文件

[root@server6 ~]# yum install -y httpd
[root@server6 ~]# /etc/init.d/httpd start
[root@server6 ~]# cd /var/www/html/
[root@server6 html]# vim index.html
<html>
<body>
<br>图片</br>
<img src="http://www.westos.org/images/vim.jpg">
</body>
</html>

在物理主机中加入本地解析(因此我们可以根据这种方式盗取server6上方 图片信息,这样就属于盗链行为)

[root@foundation66 kiosk]# vim /etc/hosts
172.25.66.6     daolian.westos.org

在这里插入图片描述
我们可以在server1的nginx配置文件中加入防盗链的行:让图片显示不出来

[root@server1 nginx]# vim conf/nginx.conf
144         location ~ ^/images/.*\.(jpg|gif)$ {
145                 expires 30;
146                 root /www1;
147                 valid_referers none blocked www.westos.org;
148                 if ($invalid_referer) {
149                 return 403;
150                 }
[root@server1 nginx]# nginx -s reload

在这里插入图片描述
我们还可以重定向,当访问daolian.westos.org时,重定向到/www2

[root@server1 nginx]# vim conf/nginx.conf

137         location / {
138         root    /www1;
139         index index.html;
140 
141         allow 172.25.66.250;
142         deny all;
143         }
144         location ~ ^/images/.*\.(jpg|gif)$ {
145                 expires 30;
146                 root /www1;
147                 valid_referers none blocked www.westos.org;
148                 if ($invalid_referer) {
149         #       return 403;
150                 rewrite ^/ http://bbs.westos.org/daolian.jpg;	#当访问/images目录下的图片时,重定向到bbs.westos.org/下面
151                 }
152         }

159 }
160 server {
161       listen 80;
162       server_name bbs.westos.org;
163       #rewrite ^(.*)$ http://www.westos.org/bbs$1;
164       location / {
165       root      /www2;
166       index     index.html;
167       }
168 }
169 }
[root@server1 nginx]# nginx -s reload

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章