nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > Nginx的跨域、alias、优化

Nginx的跨域、alias、优化方式

作者:Forever Nore

这篇文章主要介绍了Nginx的跨域、alias、优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

root与alias

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

两者区别:

反向代理解决跨域

nginx的优化

基本配置优化

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配置的常用参数

缓存

   # 代理缓存配置
   # 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

总结

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

您可能感兴趣的文章:
阅读全文