Nginx学习(三)

使用Nginx为静态资源提供服务

  • 在/home下面导入一个静态的文件,包含html、css、js文件

  • 创建static.conf配置文件:

在/usr/local/conf下面创建static.conf文件:

server {
	listen	90;
	server_name localhost;
	#匹配静态页面
	location / {
		#指定静态资源的目录
		root /home/foodie-shop;
		# 指定默认的页面文件
		index index.html;
	}
	#匹配静态资源,视频、音频、图片等,
	location /static {
		#root /home;
		#设置别名,用户访问的时候以上面为准
		alias /home/imooc;
	}
	#可与使用别名但是其实是相同路下的文件共存
	location /imooc {
		root /home;
	}
}
  • 打开nginx.conf文件,引入该配置文件

  • 重新启动nginx

./nginx -s reload

  • 直接访问localhost:90,就能看到页面啦

使用Gzip压缩提升请求效率

详细配置文件如下:

user  root;
#工作进程
worker_processes  1;

# 错误日志 debug info notice warn error crit
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#nginx pid进程
#pid        logs/nginx.pid;


events {
    # Linux默认使用epoll
    use epoll;
    # 每个worker允许连接的客户端的最大连接数,根据硬件配置来的
    worker_connections  1024;
}


http {
    # 导入外部文件,目的是为了提高配置文件的可读性,mime.types位于/usr/local/nginx/conf
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
    #access_log  logs/access.log  main;
    #提高文件传输的性能
    sendfile        on;
    #文件数据包达到一定规模时才开始发送
    #tcp_nopush     on;
    
    #客户端连接服务端的时间
    #keepalive_timeout  0;
    keepalive_timeout  65;

    # 开启文件压缩,增加文件传输的效率
    gzip  on;
	#限制最小压缩,小于1字节文件不会压缩
	gzip_min_length 1;
	# 定义压缩的级别(压缩比),文件越大,压缩越多,但是cpu使用越多
	gzip_comp_level 3;
    # 压缩的文件类型
	gzip_types text/plain application/javascript text/html text/css application/xml text/javascript image/jpeg image/gif image/png application/json text/javascript;
	
	include static.conf;    
    #虚拟主机
    server {
        # 监听的端口
        listen       88;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        
        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        # 监听的端口
         listen       89;
         server_name  localhost;
        
         location / {
              root   html;
              index  hello.html index.htm;
         }
         
         error_page 500 502 503 504 /50x.html;
         location = /50x.html {
              root html;
         }


     }

}

配置虚拟主机时location的匹配规则

  • 空格:默认匹配,普通匹配
location / {
	root /home;
}
  • =:精确匹配
location = /imooc/img/face1.png{
	root /home;
}
  • ~*:匹配正则表达式,不区分大小写
#符合图片的显示
location ~ \.(GIF|jpg|png|jpeg) {
	root /home;
}
  • ~: 匹配正则表达式,区分大小写
#GIF必须大写才能匹配到
location ~ \.(GIF|jpg|png|jpeg) {
root /home;
}
  • ^~: 以某个字符路径开头
location ^~ /imooc/img {
	root /home;
}

DNS域名解析

DNS(Domain Name System)

用户请求到服务器后端的过程

Tomcat之间是通过内网进行访问,外网IP对外关闭;

在Nginx中解决跨域问题

Cros跨域资源共享

  • Cross-Origin Resource Sharing;
  • 也许浏览器向Origin的服务器发起js请求获取响应;
解决方案:
  • Jsonp;
  • Springboot Cors;
  • Nginx;
Nginx对跨域的支持,在目标虚拟主机配置里配置:
#允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;

Nginx中配置资源防盗链

#对源站点验证
valid_referers *.XXX.com;
#非法引入会进入下方判断
if ($invalid_referer) {
return 404;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值