nginx配置及操作简要记录

。_饼干妹妹 提交于 2020-02-29 03:52:12

    因为目前项目中服务多是用nginx进行均衡负载的,所以这里记录下,为以后备查。

如下:

nginx安装目录:/root/softwate/nginx

nginx可执行文件目录:/root/softwate/nginx/sbin/nginx

nginx配置文件目录:/root/softwate/nginx/conf/nginx.conf

nginx的配置文件如下:

#用户,一般不用配置,我测试用的root 需要指定下root
user root;
#user  nobody;
#启动进程数量,一般和主机内核数量一致
worker_processes  1;
#错误日志打印
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    #单个后台worker process进程的最大并发链接数 
    worker_connections  1024;
}


http {
	#设定mime类型,类型由mime.type文件定义
    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 sendfile: 设置为on表示启动高效传输文件的模式
    #对于普通应用,设为 on,
    #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
    #这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer
    #用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer
    #再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket
    #开启这个参数后可以让数据不用经过用户buffer
    sendfile        on;
    #tcp_nopush     on;
		
	#连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;
    
	#开启gzip压缩  
    #gzip  on;
		
	#upstream服务器,轮询机制,均衡负载,以权重的方式分发,weight是权重
	#权重越大则分配的可能行越大
    #这里后端服务只有一个,所以都会分发到哪一个上
    upstream  test {
                 server 172.21.0.5:8081 weight=10;
    }

	#虚拟主机配置
    server {
    	#监听80端口
        listen       80;
        #定义访问地址,可以有多个,用空格分隔
        server_name  localhost;

        #charset koi8-r;
        
		#虚拟主机的访问日志
        #access_log  logs/host.access.log  main;
				
		#默认请求
        location / {
            #root   html;
            #默认访问目录
            root   /root/html;
            #指定默认访问页面
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
				
		#配置访问静态文件
	    #配置访问url中包含test的静态文件
		location ~ ^/test/.*\.(gif|bmp|jpg|jpeg|png|swf|GIF|BMP|JPG|JPEG|PNG)$ {
             #文件目录
             root /root/html;
          }
				
		#启用反向代理,配置服务
		#分发处理带有test的url请求
        location ~ /(test)/.*$ {
        		#分发到upstream服务test ,也可以直接指定http://ip:port 如172.21.0.5:8081
                proxy_pass http://test;
                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_set_header Host $host:$server_port;
                #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header connect "";
                #以下可选,为反向代理配置
                client_max_body_size 30m; #允许客户端请求的最大单文件字节数
                client_body_buffer_size 1024k; #缓冲区代理缓冲用户端请求的最大字节数
                proxy_connect_timeout 60; #nginx跟后端服务器连接超时时间(代理连接超时) 
                proxy_send_timeout 120; #后端服务器数据回传时间(代理发送超时)
                proxy_read_timeout 120; #连接成功后,后端服务器响应时间(代理接收超时)  
                proxy_buffer_size 128k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
                proxy_buffers 8 128k; #proxy_buffers缓冲区,网页平均在32k以下的设置
                proxy_busy_buffers_size 128k; #高负荷下缓冲大小(一般proxy_buffers*2)  
        }


    }

}

nginx服务的操作命令:

以下命令都是按照我安装的nginx目录操作,具体要根据自己的实际修改。

1、验证nginx的配置是否有问题。在启动nginx或者重新加载ng配置之前,要检测nginx的配置文件是否正常。特别是线上一般都是重新加载ng配置的,防止出问题,一定要检测。

命令:/root/softwate/nginx/sbin/nginx -t -c /root/softwate/nginx/conf/nginx.conf

[root@VM_0_5_centos sbin]# /root/softwate/nginx/sbin/nginx -t -c /root/softwate/nginx/conf/nginx.conf
nginx: the configuration file /root/softwate/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /root/softwate/nginx/conf/nginx.conf test is successful
[root@VM_0_5_centos sbin]#

2、启动nginx。

命令:/root/softwate/nginx/sbin/nginx -c /root/softwate/nginx/conf/nginx.conf

启动后,一般没有提示,可以自行查看nginx进程

[root@VM_0_5_centos sbin]# /root/softwate/nginx/sbin/nginx -c /root/softwate/nginx/conf/nginx.conf
[root@VM_0_5_centos sbin]# 
[root@VM_0_5_centos sbin]# ps -ef | grep nginx
root     30262     1  0 10:32 ?        00:00:00 nginx: master process /root/softwate/nginx/sbin/nginx -c /root/softwate/nginx/conf/nginx.conf
root     30263 30262  0 10:32 ?        00:00:00 nginx: worker process
root     30267 29966  0 10:33 pts/0    00:00:00 grep --color=auto nginx
[root@VM_0_5_centos sbin]# 

3、重新加载nginx配置。一般修改nginx配置后,重新加载即可,不需要重启。

命令:root/softwate/nginx/sbin/nginx -s reload

[root@VM_0_5_centos sbin]# /root/softwate/nginx/sbin/nginx -s reload
[root@VM_0_5_centos sbin]#

重新加载后,一般也没有直接提示,但在是ng的日志中,会有一条日志记录。总之,不熟悉的话,线上要修改前,要做好备份和配置文件校验。

测试:

在nginx默认访问目录/root/html下,生成index.html文件。就是测试,内容随便啦。。。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>nginx测试首页</title>
</head>
<body>
<p>这是ng访问测试</p>
</body>
</html>

然后,浏览器访问ng对应的外网ip和端口口号80(端口也可以不加). 浏览器正常显示nginx测试首页,说明配置正常。

其他的服务均衡负载测试,就要和自己服务配合着来了,这里就不放了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!