一.nginx虚拟主机的配置
1.修改nginx配置文件添加两个虚拟主机,之后检查语法,重新加载nginx服务
vim /usr/local/lnmp/nginx/conf/nginx.conf #文件末尾加上
server {
listen 80;
server_name www.westos.org;
location / {
root /www1;
index index.html;
}
}
server {
listen 80;
server_name bbs.westos.org;
location / {
root /www2;
index index.html;
}
}
nginx -s reload
nginx -t
2.新建访问主目录,和访问页面
mkdir /www1 #建立nginx访问的目录
mkdir /www2
cd /www1 #编写其默认发布文件
vim index.html
www.westos.org
cd /www2
vim index.html
bbs.westos.org
3.设置本地解析,
172.25.38.4 serverX www.westos.org bbs.westos.org
4.测试
二.ssl加密实现https
1.https访问设置,开启443端口加密,设置nginx的配置文件,检查语法,刷新reload
vim /usr/local/lnmp/nginx/conf/nginx.conf
server {
listen 443 ssl;
server_name localhost;
ssl_certificate cert.pem;
ssl_certificate_key cert.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /www1;
index index.html index.htm;
}
}
2.生成证书
cd /etc/pki/tls/certs/
make cert.pem #生成证书
ll cert.pem #查看证书文件是否建立
cp cert.pem /usr/local/lnmp/nginx/conf/
3.测试,https:是否生效,在浏览器中输入https://www.westos.org,添加证书刷新,就访问成功。
nginx -s reload
三.Nginx重定向
1.当访问www.westos.org和westos.org,重定向到https://www.westos.org
123 server {
124 listen 80;
125 server_name www.westos.org westos.org;
126 rewrite ^/(.*)$ https://www.westos.org; ##默认为临时重定向。可以加上permanent,永久重定向
127 location / {
128 root /www1;
129 index index.html;
130 }
131 }
2.访问www.westos.org/bbs/重定向到http://bbs.westos.org/,访问www.westos.org/bbs/index.html重新定向到http://bbs.westos.org/index.html
3.nginx的反向重定向
123 server {
124 listen 80;
125 server_name www.westos.org westos.org;
126 #rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
127 #rewrite ^/bbs$ http://bbs.westos.org;
128 #rewrite ^/bbs/(.*)$ http://bbs.westos.org/$1;
129 if ($host = "bbs.westos.org") {
130 rewrite ^/(.*)$ http://www.westos.org/bbs;
131 }
132 location / {
133 root /www1;
134 index index.html;
135 }
136 }
137 # server {
138 # listen 80;
139 # server_name bbs.westos.org;
140 # location / {
141 # root /www2;
142 # index index.html;
143 # }
144 #}
编写一个bbs测试目录
cd /www1
mkdir bbs
cd bbs/
vim index.html
4.nginx的访问控制,允许172.25.254.2访问,其他禁止,访问时返回403禁止,可以禁止ip也可以禁止访问的网段,比如:172.25.254.0/24。
132 location / {
133 allow 172.25.254.2;
134 deny all;
135 root /www1;
136 index index.html;
137 }
5.对客户端的访问进行并发控制和流量控制
5.1并发控制
38 limit_conn_zone $binary_remote_addr zone=addr:10m;
148 location /download/ {
149 root /www1;
150 limit_conn addr 1; 并发访问量为1
151 }
压力测试,每秒10次访问量,有2次成功,8次失败
ab -c10 -n 10 http://www.westos.org/download/11.jpg
每秒访问1次,访问10次全部返回200,正确
ab -c1 -n 10 http://www.westos.org/download/11.jpg
5.2流量控制
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
location /download {
limit_conn addr 1;
limit_rate 50k; # 限制速率为50k
limit_req zone=one burst=5;
}
6.防止恶意点击
40 server {
41 listen 80;
42 server_name _;
43 return 500;
因为这样页面不友好,所以重定向到年需要的网页,这里重定向到www.westos.org
40 server {
41 listen 80;
42 server_name _;
43 #return 500;
44 rewrite ^(.*) http://www.westos.org permanent;
45 #charset koi8-r;
46 location ~\.jsp$ {
47 proxy_pass http://127.25.254.1:8080;
48 }
49 #access_log logs/host.access.log main;
50
51 location / {
52 root html;
53 index index.html index.htm;
54 }
7.网页编码的设置
写入测试页面:
开始访问:
设置配置文件:
访问测试:
8.去掉不必要的日志记录
access_log off; # 在要访问的位置
9.有时我们访问一个图片会出现上下齿状,这就要用到防盗链技术
在一台主机上安装apache,编辑默认发布文件:
<html>
<body>
<img src="http://www.westos.org/download/11.jpg">
</body>
</html>
在浏览器中输入172.25.254.2访问到http://www.westos.org/download/11.jpg这个图片实现盗取链接
location ~ ^/images/.*\.(jpg|gif)$ {
# deny all;
expires 365;
root /www1;
valid_referers none blocked www.westos.org;
if ($invalid_referer) {
return 403; #返回403
#rewrite ^/http://www.westos.org/ #重定向到指定文件
}
}