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中日志模块的应用和配置应用示例

    Nginx中日志模块的应用和配置应用示例

    Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于互联网领域,这篇文章主要介绍了Nginx中日志模块的应用和配置,下面通过一个简单的实例来演示Nginx日志模块的应用和配置,需要的朋友可以参考下
    2024-02-02
  • Nginx服务器相关的一些安全配置建议

    Nginx服务器相关的一些安全配置建议

    这篇文章主要介绍了Nginx服务器相关的一些安全配置建议,共计总结了十个小点,需要的朋友可以参考下
    2015-06-06
  • 通过Nginx搭建Tomcat9集群并实现Session共享

    通过Nginx搭建Tomcat9集群并实现Session共享

    这篇文章主要介绍了通过Nginx搭建Tomcat9集群并实现Session共享,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Nginx反向代理配置的全过程记录

    Nginx反向代理配置的全过程记录

    这篇文章主要给大家介绍了关于Nginx反向代理配置的相关资料,nginx作为web服务器一个重要的功能就是反向代理,当然你也可以使用nginx配置正向代理,需要的朋友可以参考下
    2021-06-06
  • linux下Nginx 0.8.40的安装方法

    linux下Nginx 0.8.40的安装方法

    这篇文章主要介绍了linux下Nginx 0.8.40的安装方法,需要的朋友可以参考下
    2014-11-11
  • Nginx利用Logrotate实现日志分割的详细过程

    Nginx利用Logrotate实现日志分割的详细过程

    nginx日志分割是很常见的运维工作,下面这篇文章主要给大家介绍了关于Nginx利用Logrotate日志分割的详细过程,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 浅析nginx 客户端返回499的错误码的问题

    浅析nginx 客户端返回499的错误码的问题

    我们服务器客户端一直有返回错误码499的日志,以前觉得比例不高,就没有仔细查过,最近有领导问这个问题,为什么耗时只有0.0几秒,为啥还499了?最近几天就把这个问题跟踪定位了一下,这里做个记录,对nginx返回499错误码相关知识感兴趣的朋友一起看看吧
    2022-10-10
  • 记一次nginx配置不当引发的499与failover 机制失效问题

    记一次nginx配置不当引发的499与failover 机制失效问题

    近期在非高峰期也存在499超过告警阈值的偶发情况,多的时候一天几次,少的时候则几天一次,持续一般也就数分钟,经过和小伙伴的共同探究,最后发现之前对于499是客户端主动断开因而和服务端关系不大的想当然认知是错误的,这里记录一下
    2023-05-05
  • nginx配置PC站手机站分离实现重定向

    nginx配置PC站手机站分离实现重定向

    这篇文章主要介绍了nginx配置PC站手机站分离实现重定向,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • nginx常用命令放入shell脚本详解

    nginx常用命令放入shell脚本详解

    这篇文章主要介绍了nginx常用命令放入shell脚本详解,文章讲解的很清晰,有感兴趣的同学可以研究下
    2021-02-02

最新评论