nginx配置快速初步了解

  • 全局块:该配置是nginx的全局配置,如pid存放路径,日志存放路径,运行nginx的用户等。

  • events块:配置影响nginx服务器或与用户的网络连接,事件驱动模型等。

  • http块:配置一些有关请求的操作参数,如定义mime-type,日志格式定义,是否使用sendfile传输文件,压缩相关参数,和文件引入等操作,并且在该块中配置1个或多个server虚拟主机,即其包含server块,upstream块。

  • server块:配置虚拟主机相关参数,如端口、IP或域名,并且需在该块中配置1个或多个location路由,即其包含location块。

  • location块:配置请求路由,以及页面处理,或进行反向代理操作。

  • upstream块:反向代理和负载均衡配置。

  • 具体配置文件如下:

#用户
user nginx;
#进程数
worker_processes 1;
#错误日志存放路径,以及日志级别选择warn、info等
error_log /var/log/nginx/error.log warn;
#pid存放路径
pid /var/run/nginx.pid;

#以上属于全局块的内容,以下属于其他块的内容

#events块配置
events {
	#事件驱动模型(不同的操作系统由不同的模型)
	use epoll;
	#单个进程最大连接数(最大连接数=连接数*进程数)
	worker_connections 1024; 
}
 #http块配置
http {
	#跨域请求配置
	add_header Access-Control-Allow-Origin *;
	add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
	add_header Access-Control-Allow-Headers X-Requested-With;
	
	#文件引入,定义mime-type
	include /etc/nginx/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"';

#$remote_addr 与 $http_x_forwarded_for 客户端的ip地址;
#$remote_user 客户端用户名称;
#$time_local 访问时间与时区;
#$request 请求的url与http协议;
#$status 请求状态;成功是200;
#$body_bytes_s ent 发送给客户端文件主体内容大小;
#$http_referer 从那个页面链接访问过来的;
#$http_user_agent 客户端浏览器的相关信息;

	#访问日志
	access_log /var/log/nginx/access.log main;
	
	#传输文件,普通应用on,
	sendfile on;
	#tcp_nopush on;
	
	#超时间隔
	keepalive_timeout 65;
	
	#开启压缩,还有有关压缩的其他参数没有在此赘述
	gzip on;
	
	#为了提高可维护性,采用文件引入的方式配置server(包含了location)和upstream
	include /etc/nginx/conf.d/*.conf;
}

被引入的文件(包含了server块与upstream块):

 #upstream块:反向代理和负载均衡配置
 upstream bbb {
 	 #负载均衡模式,默认采用轮询算法,weight表示权重,用以指定轮询几率,权重比即被访问比
	 server 192.168.72.129:8080 weight=3;
	 server 192.168.72.129:8081;
	 server 192.168.72.129:8082;
 }
  upstream ccc {
	 #负载均衡算法ip_hash
 	 ip_hash #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
 	 
 	 #还有其他负载均衡算法如fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。
 	 
	 server 192.168.72.129:8083;
	 server 192.168.72.129:8084;
	 server 192.168.72.129:8085;
 }
 #server块、location块配置
 server {
	 listen 80; # 端⼝
	 server_name www.aaa.com; # 域名或ip
	 location /nihao { # 访问路径配置->http://www.aaa.com:80/nihao
		 proxy_pass http://bbb;#转发至bbb,其为upstream块中名称
		 index index.html index.htm; # 默认⾸⻚
	 }
	 location / { # 访问路径配置->http://www.aaa.com:80/
		 root /usr/share/nginx/html;# 根⽬录
		 index index.html index.htm; # 默认⾸⻚
	 }
	 error_page 500 502 503 504 /50x.html; # 错误⻚⾯,当遇到50x状态码则路由至/50x.html
	 location = /50x.html {
		 root html;
 	 }
 }

更多的配置可参考:
Nginx 服务器安装及配置文件详解
Nginx配置文件详解
Nginx配置文件详解:新手必看

遇到的问题:
docker启动了nginx容器,但测试时无法访问nginx
解决方案:

  1. 检查配置文件,有可能你少打了一个字母或一个标点符号。
  2. 你需要手动启动,敲入如下命令即可。
docker exec -it 容器名 bash
/usr/sbin/nginx
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值