Nginx主要配置说明样例

该例为前端代理功能+http服务器功能

user  nginx;					# 所有者(对应项目应赋予此所有者相关读写执行权限)
worker_processes  2;			# 启用进程
error_log  logs/error.log;		# 错误日志
pid        logs/nginx.pid;		# pid保存文件

`nginx 工作模式全局配置`
events {
    worker_connections  2048;		# 最大连接数
    multi_accept on;				# 尽可能多的接收连接
    use epoll;						# 轮询方式
}

`http服务配置`
http {
    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;				# 高效传输文件模式(跳过文件写入用户buffer步骤)
    								# 硬盘 >> kernel buffer >> user buffer>> kernel socket buffer >>协议栈
									# 硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协议栈
    tcp_nopush     on;				# 在数据包最大时发送(解决网络拥堵)

	keepalive_requests   2000;  	#单个长连接提供的最大请求数量,默认100
	keepalive_timeout    600;   	#长连接的存在时间,默认75秒。太小的情况下,执行长时间的页面会失败。IE是强制60秒
	send_timeout         300;   	#一个长连接不活动的时间上限,默认60秒
	
	open_file_cache_valid 30 ;  	#30秒检查一次缓存的有效性,默认60秒
	open_file_cache max=102400 inactive=20;  #缓存文件的相关信息(非本身),max缓存条目,inactive失效时间
	open_file_cache_errors on; 		#错误信息也缓存
	
	server_tokens off; 				#nginx版本是否显示给用户。off是关闭。默认开启
	client_max_body_size 100m;
	
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2		# 启动特定加密协议
	ssl_prefer_server_ciphers on;			# 优先使用服务端加密套件

	gzip on;								# 压缩发送数据
	gzip_disable "msie6";					# 为指定客户端禁止压缩数据
	# gzip_vary on;							#
	# gzip_proxied any;						# 压缩所有请求(off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any])
	# gzip_comp_level 6;					# 压缩等级 1-9(结果低到高)
	# gzip_buffers 16 8k;					# 申请内存大小
	# gzip_http_version 1.1;				# 标识http版本
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
	  
######################前端代理+安全证书认证,做基于域名的虚拟主机
	`负载均衡配置:一般用来实现分布式集群配置`
	upstream api1.demo.net {		#定义将此域名的请求转发给后端的指定IP地址
		server 192.168.0.123:80;
	}
	`服务主机配置`
	server {
		listen 119.254.xxx.xxx:80;
		listen 119.254.xxx.xxx:443 ssl;
		server_name api1.demo.net;
		charset utf-8;
		access_log  logs/access.log  main;

		ssl_certificate /etc/letsencrypt/live/fullchain.pem;
		ssl_certificate_key /etc/letsencrypt/live/privkey.pem;
		ssl_trusted_certificate /etc/letsencrypt/live/chain.pem;
		ssl_session_cache shared:SSL:10m;
		ssl_session_timeout  10m;
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
		ssl_prefer_server_ciphers on;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

		location ^~ /.well-known/acme-challenge/ {
			root /opt/nginx/html/zhengshu/;
			try_files $uri = 404;
		}

		location / {
			# 反向代理
			proxy_pass http://api1.demo.net;	#将请求转发给此域名
			proxy_set_header Host $host;			#将请求头赋给Host
			proxy_set_header X-Real-IP $remote_addr;	#将客户端的真实IP赋予X-Real-IP,这样就记录了客户端真实IP
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;	#记录用户的真实IP和经过的代理nginx IP
			proxy_redirect off;
		}
	}
	
#####################后端接收转发信息部分(提供http服务)
	
	upstream api2.demo.net {		#指定api2.demo.net所对应的IP和访问端口
		# ip_hash 					# 指定请求调度算法 默认为weight权重
		server 192.168.0.123:8000;
		server 192.168.0.123:8001 down;								# 该主机暂停服务
		server 192.168.0.123:8002 max_fails=3;						# 最大失败次数(超过暂停服务)
		server 192.168.0.123:8003 fail_timeout=20;					# 请求处理失败后暂停20s重新发起请求
		server 192.168.0.123:8004 max_fails=3 fail_timeout=20s;
	}
	`其他服务主机配置,配置多个server可以让一个nginx下运行多个不同项目`
	server {
		listen       192.168.0.123:80;
		server_name  api2.demo.net;
		
		location /weixin/ {
			rewrite ^(.*)$ https://api.demo2.com$1 permanent;	#301重定向(永久重定向)
			rewrite ^(.*)$ https://api.demo2.com$1 redirect;	#302重定向(临时重定向)
		}
		
		location /static {
			alias /opt/static/;
		}
		
		location /media {
			alias /opt/media/;
		}
		
		location / {
			# uwsgi 反向代理
			uwsgi_pass api2.demo.lejian;		#将符合该匹配项的请求转发给指定uwsgi进程
			include uwsgi_params;					#指包含uwsgi_params文件,nginx自带
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_redirect off;
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值