nginx 根据url不同的后缀来访问不同的目录
时间: 2024-03-10 13:48:49 浏览: 95
可以通过nginx的location配置项来实现根据URL后缀访问不同的目录。具体步骤如下:
1. 在nginx配置文件中添加location配置项。
```
location ~* \.(gif|jpg|jpeg|png|js|css)$ {
root /data/static;
}
location ~* \.(php|jsp|asp)$ {
root /data/web;
}
```
2. 在上述配置中,第一个location块匹配以gif、jpg、jpeg、png、js、css结尾的URL,访问的目录为/data/static;第二个location块匹配以php、jsp、asp结尾的URL,访问的目录为/data/web。
3. 重启nginx服务,使配置生效。
注意:location配置项中的正则表达式需要根据具体需求进行修改。
相关问题
nginx配置代后缀访问web应用
Nginx是一款流行的开源Web服务器及反向代理服务器,可以方便地通过配置文件管理网站内容和路由请求。如果你想让Nginx支持后缀访问web应用,通常会在server块内设置location指令来匹配特定的URL模式,并将请求转发到相应的应用程序。
以下是一个简单的示例配置,假设你的web应用部署在`/app`路径下:
```nginx
server {
listen 80; # 或监听其他端口如443(SSL)
server_name yourdomain.com;
location / {
root /var/www/yourapp/public; # 应用程序静态文件目录
try_files $uri $uri/ @proxy;
}
location @proxy {
proxy_pass http://localhost:3000; # 如果你的应用运行在本地的3000端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
在这个例子中,当你访问`http://yourdomain.com/somefile.ext`时,如果文件存在,Nginx会从`/var/www/yourapp/public`目录查找;如果不存在,它会将请求代理到本地的3000端口的web应用上处理。
nginx 搭建https站点
要在 Nginx 上搭建 HTTPS 站点,需要完成以下步骤:
1. 安装 SSL 证书
首先需要获得 SSL 证书。可以从证书颁发机构(CA)购买,也可以使用免费的 Let's Encrypt 证书。安装证书后,将其保存到服务器的目录中。通常情况下,证书文件是 `.crt` 后缀,私钥文件是 `.key` 后缀。
2. 配置 Nginx
对于 HTTPS 站点,需要在 Nginx 配置文件中添加以下代码:
```
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.crt;
ssl_certificate_key /path/to/private.key;
# 其他配置项
}
```
`listen` 指令指定监听端口为 443,这是 HTTPS 的默认端口。`server_name` 指令指定站点的域名或 IP 地址。`ssl_certificate` 和 `ssl_certificate_key` 指令分别指定 SSL 证书和私钥的路径。
3. 重启 Nginx
在完成配置后,需要重启 Nginx 服务:
```
$ sudo systemctl restart nginx
```
4. 验证 HTTPS 连接
可以通过浏览器访问站点,确保已成功建立 HTTPS 连接。在浏览器中,可以看到网站 URL 的左侧有一个锁形图标,表示该站点使用了有效的 SSL 证书。
完成以上步骤后,Nginx 就已经成功搭建了 HTTPS 站点。
阅读全文