nginx配置文件的配置规则和说明

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


一、nginx是什么?

nginx常用来做负载负载均衡和反向代理服务器,同样可以作为文件服务器和做跨域配置

二、如何安装

nginx安装的时候不指定安装目录,会默认安装到/usr/local/nginx下,因此如果需要改变安装目录的同学,可以按照以下方法安装

1.安装依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2.下载安装文件

//下载
wget http://nginx.org/download/nginx-1.13.7.tar.gz
//解压
tar -xvf nginx-1.13.7.tar.gz
//官方网站
https://nginx.org/en/download.html

3.安装文件

//创建文件夹
mkdir /user/nginx
//进入到nginx解压目录
[root@bogon nginx-1.13.7]# cd nginx-1.13.7
//将nginx安装到指定文件夹下
[root@bogon nginx-1.13.7]# ./configure --prefix=/usr/local/nginx
[root@bogon nginx-1.13.7]# make
[root@bogon nginx-1.13.7]# make install

以上就是nginx的简单安装流程

三 配置文件

1.nginx作为文件服务器

1.文件目录配置

	location / {  
	    root /data/www;  
	} 
	//访问 ip:port 命中 /data/www下的文件 如ip:port/1.jpg -> /data/www/1.jpg

location 中有路径

location /images/ {  
    root /data/www;  
}
//访问 ip:port/images 会命中 /data/www/images 如 ip:port/images/1.jpg -> /data/www/images/1.jpg

alias和root

上面配置为root配置,以下为alias配置

	location /target {
        alias /etc/nginx/html/static/;
        }
     //访问 ip:port/target - >  命中alias  如 ip:port/target/1.jpg -> /etc/nginx/html/static/1.jpg	 

nginx默认会选择最长前缀去匹配当前URL,所以路径中有相同的,会匹配最长的.

2.反向代理服务器

nginx接受前端发来的所有请求,并转发这些请求,可以配置转发规则,如 请求地址 url带有 user的可以转发到指定 ip:port

		location /user {
               proxy_pass http://ip:port;
        }
	  //访问规则: server_name/user/query?id=1 ->转发 ip:port/user/query?id=1

		//如果 是以下
		location /user {
               proxy_pass http://ip:port/user;
        }
	  //访问规则: server_name/user/query?id=1 ->转发 ip:port/user/query?id=1

3.跨域配置

在 location 中添加如下配置

	add_header 'Access-Control-Allow-Origin' $http_origin;
	add_header 'Access-Control-Allow-Credentials' 'true';
	add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
	add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
	add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
	if ($request_method = 'OPTIONS') {
		add_header 'Access-Control-Max-Age' 1728000;
		add_header 'Content-Type' 'text/plain; charset=utf-8';
		add_header 'Content-Length' 0;
		return 204;
	}

4 负载均衡

在http模块添加 upstream。upstream支持5种分配方式

1.轮询(默认)
// upstream 后自定义名称,最好不是数字
upstream backend {
    server 192.168.1.128:8081 ;
    server 192.168.1.128:8082 ;
}
server {
        listen       80;
        server_name 0.0.0.0;
        location / {
		    proxy_pass http://backend;
        }
}
2.权重

weight和访问几率成正比,用于在不同性能的后端服务器分配上

upstream backend {
    server 192.168.1.128:8081 weight=1;
    server 192.168.1.128:8082 weight=2;
}
server {
        listen       80;
        server_name 0.0.0.0;
        location / {
		    proxy_pass http://backend;
        }
}
3.ip_hash

每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。

        upstream backend {
            ip_hash;
            server 192.168.1.101:7777;
            server 192.168.1.102:8888;
            server 192.168.1.103:9999;
}
server {
        listen       80;
        server_name 0.0.0.0;
        location / {
		    proxy_pass http://backend;
        }
}

其他两种为fair响应时间分配请求,和url_hash根据url结果进行分配请求


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值