Nginx编译安装可参考之前博客:https://blog.youkuaiyun.com/qq657886445/article/details/82998396
本篇博客中涉及的所有软件包下载可参考此博客:https://blog.youkuaiyun.com/qq657886445/article/details/83662696
虚拟主机
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;
}
}
测试:
在/etc/hosts中添加本地解析
curl www.westos.org
curl bbs.westos.org
https
编辑nginx配置文件
vim /usr/local/lnmp/nginx/conf/nginx.conf
server {
listen 443 ssl;
server_name www.westos.org;
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;
}
}
生成证书
cd /etc/pki/tls/cert
make cert.pem
cp cert.pem /usr/local/lnmp/nginx/conf/
nginx -t
nginx -s reload
测试:
浏览器访问https://www.westos.org,添加证书认证
网页重定向
修改ngxin配置文件,每次修改完需重新加载
在server_name www.westos.org;下面添加
rewrite ^/(.*)$ https://www.westos.org; #临时重定向
rewrite ^/(.*)$ https://www.westos.org permanent; #永久重定向
rewrite ^/(.*)$ https://www.westos.org/$1 permanent; #重定向指定页面
类似于百度,访问baidu.com也可以重定向到https://www.baidu.com
server_name www.westos.org westos.org; #*.westos.org 也可以,但是这样速度很慢
rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
rewrite ^/bbs$ https://www.westos.org; # 以bbs结尾的访问重定向到https://www.westos.org
rewrite ^/bbs/(.*)$ http://www.westos.org/$1; # 任何访问以bbs结尾以及bbs页面下的内容都重定向到 http://www.westos.org/$1 页面下
在server_name bbs.westos.org;下面添加
rewrite ^/(.*)$ https://www.westos.org/bbs;
注释www.westos.org中的rewrite
使用if判断语句,全部注释bbs.westos.org 修改 www.westos.org
server_name www.westos.org westos.org bbs.westos.org;
if ($host = "bbs.westos.org"){
rewrite ^/(.*)$ http://www.westos.org/bbs;
}
访问控制
修改nginx配置文件并重新加载
location / {
root /www1;
index index.html;
allow 172.25.24.250;
deny all;
}
location ~ ^/images/.*\.(jpg|gif|png)$ {
deny all;
}
控制并发连接数
修改nginx配置文件并重新加载
location /download/ {
root /www1;
limit_conn addr 1;
}
ab -c1 -n 10 http://www.westos.org/download/vim.jpg #压力测试 -c1 并发数为1 -n 测试次数
cat /usr/local/lamp/nginx/logs/access.log #查看日志
ab -c10 -n 10 http://www.westos.org/download/vim.jpg #并发数为10时只有一个访问成功
限制访问速率
修改配置文件并重新加载
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #1秒请求一次
location /download/ {
root /www1;
limit_conn addr 1;
limit_req zone=one burst=5; #限制访问速率
#limit_rate 100k; #限制带宽
}
测试:
ab -c1 -n 10 http://www.westos.org/download/vim.jpg
页面缓存
修改配置文件
location ~ ^/images/.*\.(jpg|gif|png)$ {
expires 30d;
root /www1;
}
curl -I http://www.westos.org/images/vim.jpg #查看缓存expires
页面支持中文
charset utf-8;
网页防盗链
修改配置文件
Nginx 主机
server {
listen 80;
server_name www.westos.org westos.org;
charset utf-8;
#rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
#rewrite ^/bbs$ https://www.westos.org;
#rewrite ^/bbs/(.*)$ http://www.westos.org/$1;
if ($host = "bbs.westos.org"){
rewrite ^/(.*)$ http://www.westos.org/bbs;
}
location / {
root /www1;
index index.html;
allow 172.25.24.250;
deny all;
}
location ~ ^/images/.*\.(jpg|gif|png)$ {
expires 30d;
root /www1;
valid_referers none blocked www.westos.org;
if ($invalid_referer) {
#return 403;
rewrite ^/ http://bbs.westos.org/daolian.jpg;
}
}
location /download/ {
root /www1;
limit_conn addr 1;
limit_req zone=one burst=5;
limit_rate 100k;
}
}
server {
listen 80;
server_name bbs.westos.org;
#rewrite ^/(.*)$ https://www.westos.org/bbs;
location / {
root /www2;
index index.html;
}
}
另一台主机:
安装apace并开启服务,编辑页面/var/www/html/index.html
<html>
<body>
<br>图片</br>
<img src="http://www.westos.org/images/vim.jpg">
</body>
</html>
测试:
浏览器访问daolian.westos.org #需添加本地解析