1,同ip多域名
How To Run Multiple Websites Using Nginx Webserver On Ubuntu 15.04 | Liberian Geek
https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts
2,如何检查匹配了哪个location
add_header X-debug-message "A static file was served" always;
3,针对index.html不做缓存
# 入口文件index都不缓存
if ($request_filename ~* index\.(?:htm|html)$) {
add_header Cache-Control "no-cache, no-store";
}
4,配置代理
location /admin_qa/ {
rewrite ^/admin_qa/(.*)$ /$1 break;
#proxy_pass http://10.252.39.31:5496;
proxy_pass http://10.252.40.15:5496;
}
location /theme.css {
#proxy_pass http://10.252.39.31:5496;
proxy_pass http://10.252.40.15:5496;
}
location /index-d50163a8.js {
#proxy_pass http://10.252.39.31:5496;
proxy_pass http://10.252.40.15:5496;
}
location /info {
#proxy_pass http://10.252.39.31:5496;
proxy_pass http://10.252.40.15:5496;
}
location /queue/join {
#proxy_pass http://10.252.39.31:5496;
proxy_pass http://10.252.40.15:5496;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 1;
}
5,对ip进行自动封禁
通过Nginx日志--检测异常访问ip进行封禁-腾讯云开发者社区-腾讯云
6,root和alias的区别
-
root
- 定义:用于设置基础路径,它将请求的URI与指定的基础路径结合,形成服务器上实际要查找的文件路径。
- 用法:
root path
,其中path
为指定的基础路径。 - 示例:
location /images/ { root /var/www/html; }
对于请求
http://example.com/images/test.jpg
,Nginx会在/var/www/html/images/test.jpg
查找文件。
-
alias
- 定义:用于映射请求的URI到一个确切的文件系统路径。alias后面跟随的路径会被直接用于定位文件,而不与请求URI结合。
- 用法:
alias path
,其中path
为确切的文件系统路径。需要注意的是,alias后面跟随的路径末尾必须有一个斜线(/),因为它告诉Nginx该路径是一个目录,而不是文件。 - 示例:
location /images/ { alias /var/www/html/images/; }
对于请求http://example.com/images/test.jpg,Nginx会在/var/www/html/images/test.jpg查找文件。
7,nginx日志按天切割
- 新增/etc/logrotate.d/nginx(/var/log/nginx/*.log为实际nginx日志的位置,rotate为最多保存日志文件数,nginx.pid可通过sudo find / -name nginx.pid查到具体位置)
/var/log/nginx/*.log { daily rotate 90 missingok dateext dateformat -%Y-%m-%d dateyesterday postrotate if [ -f /usr/local/nginx/logs/nginx.pid ];then kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` fi endscript }
-
crontab -e
0 0 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx