nginx服务器配置

//---------------------------------------------linux---------------------------------------------------------------------

安装:下载后解压

 启动代码格式:nginx安装目录地址 -c nginx配置文件地址

 启动:[root@tds sbin]#  /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

                               或         ./nginx  -c /usr/local/nginx/conf/nginx.conf

 重启:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可

 停止:  ./nginx -s stop 

//---------------------------------------------windows---------------------------------------------------------------------

注意不要直接双击nginx.exe,会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程

cmd 进入Nginx解压目录 执行以下命令

start nginx : 启动nginx服务

nginx -s reload  :修改配置后重新加载生效

nginx -s reopen  :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

 输入命令 tasklist /fi "imagename eq nginx.exe"   看到以下信息说明启动成功了

 //---------------------------------------------访问流程---------------------------------------------------------------------

浏览器访问80-->nginx--->域名1,域名2(server_name)--->前端包(包里指定访问后端端口)-->后端服务

1.

2-------------------------------------------------------

worker_processes  8;   nginx开启8个worker进程;

worker_cpu_affinity 00000001(第一个进程使用的cpu) 00000010(第二个进程使用的cpu) 00000100 00001000 00010000 00100000 01000000 10000000; 每个worker进程对应使用的cpu

conf.d下配置多个conf文件

2.1

2.2

后端负载配置  http请求

vue的proxyTable配置 

页面访问地址:  http://ly.cqyjt.top/api/score/1/10/20154084 实际接口中并不包含api而是

vue.exam.conf

server {
        listen  80;
        server_name  ly.cqyjt.top;
        location / {
                root    /opt/service/vue-frontend-ui/dist;
                index  index.html index.htm;
               	try_files $uri $uri/ /index.html;
        }
	location /api/ {
		rewrite /api/(.*) /$1 break; #移除了'/api',$1表示正则中括号匹配到的串
	        proxy_pass http://121.89.246.217:10005; #代理到后端服务
	}
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   html;
        }
}

vue.exam.conf1

upstream dadadada1{
        server  121.89.246.217:7071;
}

server {
        listen  7071;
        server_name  121.89.246.217;
        location / {
                root    /opt/service/vue-frontend-ui/dist;
                index  index.html index.htm;
               	try_files $uri $uri/ /index.html;
        }
	location /api/ {
		rewrite /api/(.*) /$1 break; #移除了'/api',$1表示正则中括号匹配到的串
	        proxy_pass http://121.89.246.217:10005; #代理到后端服务
	}
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   html;
        }
}

server {
        listen  80;
        server_name ly.cqyjt.top;
        location /{
                        proxy_pass http://dadadada1;
        }
        #error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   html;
        } 
}

      vue.exam.conf1 与vue.exam.conf的配置是等效的,,项目本身在vscode运行的的7071在没有用到??

//-----------------------------------------------------------------------------------------------------------------------------

如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。具体配置过程如下:

1. 在http节点下,添加upstream节点。

upstream linuxidc { 
      server 10.0.6.108:7080; 
      server 10.0.0.85:8980; 
}

  2.  将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“
http://linuxidc”.


location / { 
            root  html; 
            index  index.html index.htm; 
            proxy_pass http://linuxidc; 
}

    3.  现在负载均衡初步完成了。upstream按照轮询(默认)方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群。

    除此之外,upstream还有其它的分配策略,分别如下:

    weight(权重)

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,10.0.0.88的访问比率要比10.0.0.77的访问比率高一倍。

upstream linuxidc{ 
      server 10.0.0.77 weight=5; 
      server 10.0.0.88 weight=10; 
}

    ip_hash(访问ip)

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream favresin{ 
      ip_hash; 
      server 10.0.0.10:8080; 
      server 10.0.0.11:8080; 
}

    fair(第三方)

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。

 upstream favresin{      
      server 10.0.0.10:8080; 
      server 10.0.0.11:8080; 
      fair; 
}

url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

 upstream resinserver{ 
      server 10.0.0.10:7777; 
      server 10.0.0.11:8888; 
      hash $request_uri; 
      hash_method crc32; 
}

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

down 表示单前的server暂时不参与负载.

weight 默认为1.weight越大,负载的权重就越大。

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.

fail_timeout : max_fails次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

upstream bakend{ #定义负载均衡设备的Ip及设备状态 
      ip_hash; 
      server 10.0.0.11:9090 down; 
      server 10.0.0.11:8080 weight=2; 
      server 10.0.0.11:6060; 
      server 10.0.0.11:7070 backup; 
}

//---------------------------------------------------启动错误处理------------------------------------------------------

nginx 启动失败,日志里面报错信息如下:

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)

使用getenforce 命令如果输出 disabled 或 permissive 那就是关闭selinux则是开启
 

1、临时关闭selinux

setenforce 0 ##设置SELinux 成为permissive模式
setenforce 1 ##设置SELinux 成为enforcing模式

2、永久关闭selinux

修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启系统即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值