• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回服务器栏目

122 - Nginx高级 - 动静分离 - 修改location

作者:

贺及楼

成为作者

更新日期:2024-05-20 17:41:43

直接提供静态文件

你可以在Nginx的配置文件中添加一个location block来指定静态文件的存储位置。例如,如果你想提供存储在/var/www/html/static中的静态文件,你可以这样做:

  1. server {
  2. listen 80;
  3. server_name example.com;
  4. location /static/ {
  5. root /var/www/html;
  6. }
  7. }

用户访问http://example.com/static/
Nginx会在/var/www/html/static/目录下查找并提供文件。

使用别名(alias)

除了使用root指令,你还可以使用alias指令来提供静态文件。这在处理特定的URL时会很有用。

  1. server {
  2. listen 80;
  3. server_name example.com;
  4. location /static/ {
  5. alias /var/www/html/static/;
  6. }
  7. }

用户访问http://example.com/static/123/123.png
Nginx会在/var/www/html/static/目录下查找123/123.png并提供文件。

网站地图sitemap.xml

  1. location /sitemap.xml {
  2. root /var/www/html/static;
  3. }

用户访问http://example.com/sitemap.xml
Nginx会在/var/www/html/static/目录下查找sitemap.xml并提供文件。

动静分离 - 修改location

Nginx - 动态服务器 - 动态请求(tomcat、uwsgi):JSP、servlet、要数据库
Nginx - 静态服务器 - 静态请求:html、css、js、图片

通过expires设置浏览器过期时间判断要不要重新请求
经常改的话就不能设置
稳定的话就可以设置
3d 就是3天

html与image分离

  1. location /www/ {
  2. root /data/;
  3. index index.html index.htm
  4. }
  5. location /image/ {
  6. root /data/;
  7. autoindex on;打开目录浏览功能,一般不开的
  8. }

www文件夹
image文件夹

http的server的location - 对以“mp3或exe”结尾的地址进行负载均衡

  1. location ~* \.(mp3|exe)$ {
  2. 对以“mp3exe”结尾的地址进行负载均衡
  3. proxy_pass http://img_relay$request_uri; 设置被代理服务器的端口或套接字,以及URL
  4. proxy_set_header Host $host;
  5. proxy_set_header X-Real-IP $remote_addr;
  6. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  7. 以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上}

http的server的location - face

  1. location /face {
  2. if ($http_user_agent ~* "xnp") {
  3. rewrite ^(.*)$ http://111.111.111.111:8080/face.jpg redirect;
  4. }
  5. proxy_pass http://img_relay$request_uri;
  6. proxy_set_header Host $host;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9. error_page 404 502 = @fetch;}

http的server的location - fetch

  1. location @fetch {
  2. access_log /data/logs/face.log log404;
  3. rewrite ^(.*)$ http://111.111.111.111:8080/face.jpg redirect;}

http的server的location - image图片

  1. location /image {
  2. if ($http_user_agent ~* "xnp") {
  3. rewrite ^(.*)$ http://111.111.111.111:8080/face.jpg redirect;
  4. }
  5. proxy_pass http://img_relay$request_uri;
  6. proxy_set_header Host $host;
  7. proxy_set_header X-Real-IP $remote_addr;
  8. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9. error_page 404 502 = @fetch;}

http的server的location - fetch

  1. location @fetch {
  2. access_log /data/logs/image.log log404;
  3. rewrite ^(.*)$ http://111.111.111.111:8080/face.jpg redirect;}