Nginx常见问题
1.nginx多server的优先级
1.首选所有的字符串完全匹配(精确匹配)的server_name
2.选择通配符在前面的server_name
3.匹配通配符在后面的server_name
4.正则表达式的server_name
5.多个配置文件相同,哪个配置文件的listen 后面加了default_server哪个优先级最高
6.所有配置文件都匹配不上时,就会按照配置文件的顺序访问第一个配置文件
2.禁止IP访问
1.禁止IP访问,返回错误界面
[root@web01 ~]
server {
listen 80 default_server;
server_name _;
charset utf-8;
default_type text/json;
return 404 "页面不存在 404 NOT";
}
server {
listen 80;
server_name wordpress.jl.com;
root /code/wordpress;
index index.php index.html;
access_log /var/log/nginx/wordpress.log main;
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
systemctl reload nginx

2.禁止IP访问并跳转到主站点
server {
listen 80 default_server;
server_name _;
charset utf-8;
rewrite (.*) http://wordpress.jl.com$1 redirect;
}
server {
listen 80;
server_name wordpress.jl.com;
root /code/wordpress;
index index.php index.html;
access_log /var/log/nginx/wordpress.log main;
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
systemctl reload nginx

3.站点目录路径root和alias区别
server {
listen 80 default_server;
server_name _;
charset utf-8;
rewrite (.*) http://wordpress.jl.com$1 redirect;
}
server {
listen 80;
server_name wordpress.jl.com;
root /code/wordpress;
index index.php index.html;
access_log /var/log/nginx/wordpress.log main;
location /images {
root /code/images;
}
location /image {
alias /images;
}
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4.Nginx try_file路径匹配
[root@web01 ~]
server {
listen 80 default_server;
server_name _;
charset utf-8;
rewrite (.*) http://wordpress.jl.com$1 redirect;
}
server {
listen 80;
server_name wordpress.jl.com;
root /code/wordpress;
index index.php index.html;
access_log /var/log/nginx/wordpress.log main;
location / {
try_files $uri $uri/ @jl
}
location @jl {
proxy_pass http://172.16.1.8:80;
}
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
5.nginx调整上传文件的大小
Syntax: client_max_body_size size;
Default: client_max_body_size 1m;
Context: http, server, location
6.nginx配置显示404错误页面
server {
listen 80 default_server;
server_name _;
charset utf-8;
rewrite (.*) http://wordpress.jl.com$1 redirect;
}
server {
listen 80;
server_name wordpress.jl.com;
root /code/wordpress;
index index.php index.html;
access_log /var/log/nginx/wordpress.log main;
error_page 404 https://www.baidu.com;
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

server {
listen 80 default_server;
server_name _;
charset utf-8;
rewrite (.*) http://wordpress.jl.com$1 redirect;
}
server {
listen 80;
server_name wordpress.jl.com;
root /code/wordpress;
index index.php index.html;
access_log /var/log/nginx/wordpress.log main;
error_page 404 /404.html;
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

7.隐藏nginx版本号
在http层加入 "server_tokens off;" 即可
浏览器访问错误页面也会隐藏版本号

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!