Nginx的跨域、alias、优化方式

 更新时间:2024年08月06日 16:55:55   作者:Forever Nore  
这篇文章主要介绍了Nginx的跨域、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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx反向代理中出现502错误的解决步骤

    Nginx反向代理中出现502错误的解决步骤

    反向代理是一种服务器代理的方式,它代理了客户端的请求并将请求转发给后端服务器,然后将后端服务器的响应返回给客户端,但经常会遇到502错误,所以本文给大家介绍了Nginx反向代理中出现502错误的解决步骤,需要的朋友可以参考下
    2025-03-03
  • nginx快速部署一个网站服务(多域名+多端口)

    nginx快速部署一个网站服务(多域名+多端口)

    本文主要介绍了nginx快速部署一个网站服务,并实现多域名和多端口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • 如何用nginx解决前端部署跨域问题

    如何用nginx解决前端部署跨域问题

    这篇文章主要介绍了如何用nginx解决前端部署跨域问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 详解Nginx服务器的配置中开启文件Gzip压缩的方法

    详解Nginx服务器的配置中开启文件Gzip压缩的方法

    这篇文章主要介绍了Nginx服务器的配置中开启文件Gzip压缩的方法,可以对CSS和JavaScript以及各种图片等web传输的文件进行压缩,需要的朋友可以参考下
    2016-01-01
  • Linux安装Nginx步骤详解

    Linux安装Nginx步骤详解

    这篇文章主要介绍了Linux安装Nginx步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Nginx服务器Nginx.com配置文件详解

    Nginx服务器Nginx.com配置文件详解

    这篇文章主要介绍了Nginx服务器Nginx.com配置文件详解的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • win10安装配置nginx的过程

    win10安装配置nginx的过程

    这篇文章主要介绍了win10安装配置nginx的过程,帮助大家更好的理解和使用nginx服务器,感兴趣的朋友可以了解下
    2020-10-10
  • nginx进行端口转发的实现

    nginx进行端口转发的实现

    本文主要介绍了nginx进行端口转发的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Nginx简要安装配置方法图文教程

    Nginx简要安装配置方法图文教程

    这篇文章主要以图文结合的方式为大家详细介绍了Nginx简要安装配置方法教程,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Nginx+keepalived实现七层的负载均衡的高可用(最新解决方案)

    Nginx+keepalived实现七层的负载均衡的高可用(最新解决方案)

    这篇文章主要介绍了Nginx+keepalived实现七层的负载均衡的高可用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03

最新评论