当前位置: 代码网 > it编程>数据库>Mysql > Nginx的跨域、alias、优化方式

Nginx的跨域、alias、优化方式

2024年08月06日 Mysql 我要评论
root与aliaslocation / { alias /app/html/; index index.html index.htm; }两者区别:alias是目

root与alias

location / {
        alias /app/html/;
        index  index.html index.htm;
    }

两者区别:

  • alias是目录别名,root是最上层目录的定义
  • alias后必须用"/"结束,不然找不到文件,root可有可无

反向代理解决跨域

  • lvs:四层负载均衡,基于tcp ip和端口号 实现负载均衡
  • nginx:七层负载均衡,对http协议 实现负载均衡

nginx的优化

基本配置优化

  • 查看cpu核数
cat /proc/cpuinfo| grep "cpu cores"| uniq

worker_processes 4 ; # 设为cpu核数 启动的worker进程数

events{
	#设置nginx网络连接序列化
	accept_mutex on;
	#设置nginx的worker进程是否可以同时接收多个请求
	multi_accept on;
	#设置nginx的worker进程最大的连接数
	worker_connections 1024;
	#设置nginx使用的事件驱动模型
	use epoll;
}

http {
    include       mime.types;
    #include是引入关键字,这里引入了mime.types这个配置文件(同在conf目录下,mime.types是用来定义,求返回的content-type)
    default_type  application/octet-stream; #mime.types未定义的,使用默认格式application/octet-stream

   	sendfile on; # 开启 高效文件传输模式。
	tcp_nopush on; #需要在 sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量。将响应头和正文的开始部分一起发送,而不一个接一个的发送
	tcp_nodelay on; #有数据随时发送

    keepalive_timeout  65; #长链接超时时间
	
		#一个nginx可以启用多个server(虚拟服务器)
    server {
        listen       80;#监听端口80
        server_name  localhost;  #接收的域名

        location / { 
            root   html; #根目录指向html目录,看下图
            index  index.html index.htm; #域名/index 指向 index.html index.htm文件,看下图
        }

        error_page   500 502 503 504  /50x.html; # 服务器错误码为500 502 503 504,转到"域名/50x.html"
        location = /50x.html {
        	# 指定到html文件夹下找/50x.htm
            root   html;#根目录指向html目录,看下图
        }

    }
}

反向代理设置keepalive

  • 转发请求 提高效率
upstream backend{
	server 192.168.111.101:9001;
	server 192.168.111.101:9002;
	server 192.168.111.101:9003;
	keepalive 300; # 300个长连接,转发请求效率大大提高!
}
server {
	listen 80;
	server_name localhost;
	location /{
		proxy_pass http://backend;
		
	}
}

压缩

server {
        listen       80;
        server_name  localhost;

        gzip on;
	    gzip_buffers 32 4k;
	    gzip_comp_level 6;
        gzip_min_length 100;
	    gzip_types application/javascript text/css text/xml application/json;
        gzip_disable "msie [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
        gzip_vary on; #accept-encoding
        gzip_static on; #如果有压缩好的,直接使用
		location / {
           proxy_pass   http://127.0.0.1:8080;   
        }

     
       
    }

配置文件内容详细介绍:

gzip配置的常用参数

  • gzip on|off; #是否开启gzip
  • gzip_buffers 32 4k| 16 8k #缓冲(压缩在内存中缓冲几块? 每块多大?)
  • gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费cpu计算资源)
  • gzip_disable #正则匹配ua 什么样的uri不进行gzip
  • gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
  • gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
  • gzip_proxied # 设置请求者代理服务器,该如何缓存内容
  • gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
  • gzip_vary on|off # 是否传输gzip压缩标志

缓存

   # 代理缓存配置
   # meitecache:256m,大小256m,失效时间1天 inactive=1d
   proxy_cache_path "./meite_cachedata"  levels=1:2 keys_zone=meitecache:256m inactive=1d max_size=1000g; 
	
    server {
        listen       80;
        server_name  localhost;
               
        location /details {
		   #使用缓存名称
           proxy_cache meitecache;
		   #对以下状态码实现缓存~~~~
           proxy_cache_valid 200 206 304 301 302 1d;
		   # 缓存的key--》请求路径
           proxy_cache_key $request_uri;
           add_header x-cache-status $upstream_cache_status;
           proxy_pass   http://127.0.0.1:8080;
           index  index.html index.htm;
        }	
        	          
    }

操作系统优化

vi /etc/sysctl.conf 
  • 配置内容
# 防止一个套接字过多连接到达时引起负载
net.ipv4.tcp_syncookies=1
#默认128,socket的监听队列,微调大
net.core.somaxconn=1024 
# timeout的超时时间,调小,tcp握手时间
net.ipv4.tcp_fin_timeout=10 
#os直接使用timewait的连接
net.ipv4.tcp_tw_reuse=1 
#回收禁用,若开启---》快速回收处于 time_wait状态的socket
net.ipv4.tcp_tw_recycle=0 
  • 加载配置!
sysctl -p

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • MYSql通过FULLTEXT实现全文检索

    MYSql通过FULLTEXT实现全文检索

    总的来说,`FULLTEXT` 索引是关系型数据库提供的一种简单而有效的全文搜索解决方案,适用于数据量相对较小、不需要复杂搜索功能的场景。这个索引通常使用倒排索... [阅读全文]
  • 欧拉部署nginx的实现步骤

    欧拉部署nginx的实现步骤

    1.下载nginx下载地址:https://nginx.org/en/download.html选择稳定版本 下的镜像文件进行下载2.解压nginx包cd /r... [阅读全文]
  • Nginx流量控制及白名单实现

    流量限制(rate-limiting),是nginx中一个非常实用,却经常被错误理解和错误配置的功能。我们可以用来限制用户在给定时间内http请求的数量。请求,可以是一个简单网站首…

    2024年08月06日 数据库
  • MySQL的联表查询实现

    MySQL的联表查询实现

    在实际应用中,数据通常分布在多个表中,为了获取全面的信息,需要进行联表查询。本文将介绍mysql联表查询的基本概念、语法和一些优化策略,并通过图示和实例演示。什... [阅读全文]
  • MySQL 字符串日期格式转换的几种方法

    MySQL 字符串日期格式转换的几种方法

    在mysql中,经常需要将字符串类型的日期转换成日期或时间类型,或者在不同的日期格式之间进行转换。mysql提供了几种方法来实现这一点,包括使用str_to_d... [阅读全文]
  • mysql数据库中各种锁归纳总结

    mysql数据库中各种锁归纳总结

    一、引言在现代应用程序中,数据库是不可或缺的组成部分之一。而mysql作为一款开源的关系型数据库管理系统,广泛应用于各种规模的应用中。然而,在高并发的情况下,数... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com