nginx 配置入门


启动

绿色文件,无须安装,直接即可启动。

据我所知,3种启动途径,其实都类似:

一、双击nginx.exe图标,可见黑窗口一闪而过,启动完毕。

二、命令行到nginx目录,输入nginx启动。(注,此方式命令行窗口无任何提示,且被锁定)

三、命令行到nginx目录,输入start nginx启动,此方式不锁定

启动后,默认情况下(无修改配置),可见到有两个nginx的进程,一个是master process,一个是worker processes。


测试

通过观察配置文件的非注释项(参考Nginx配置文件nginx.conf中文详解),大概可知:

1、启动了1个worker processes

2、worker_connections,最大并发数为1024

3、include mime.types,引入mime.types文件所声明的文件扩展名与文件类型映射

4、application/octet-stream,默认使用application/octet-stream

5、sendfile,开启高效文件传输模式

6、监听本机“localhost”的80端口

7、映射目录为“当前目录的html目录”

8、出现500、502、503、504错误,则映射到50x.html

浏览地址http://localhost,即可访问其默认页面,即映射到NGINX_HOME/html/index.html

其他静态内容,如html、图片,可自行添加测试。

其中root 是指将本地的一个文件夹作为所有 url 请求的根路径。比如用户请求了一个 localhost/test,那么 nginx 就会去需找 /usr/share/nginx/html 文件夹下的 test 文件返回。

而 index 就是默认的访问页面了,当我们访问 localhost 时,他会自动按顺序寻找 root 文件路径下的 index.html 和 index.htm 将第一个找到的结果返回。

日志

日志默认位于NGINX_HOME/logs/,可见:

1、access.log,访问日志

2、error.log,异常日志

3、nginx.pid,进程(仅在启动nginx后才有此日志)

Location进阶配置

 比如我要将所有的请求到转移到真正提供服务的一台机器的 8080 端口,只要这样:

                    location / {
                                    proxy_pass 123.34.56.67:8080;
                   }

  这样所有的请求就都被反向代理到 123.34.56.67 去了。这样我们反向代理的功能是实现了,可是就能代理到一台服务器上哪有什么负载均衡呀?这就要用到 nginx 的   upstream 模块了。            
                      upstream backend {
                         ip_hash;   
                         server backend1.example.com;
                         server backend2.example.com;
                         server backend3.example.com;
                         server backend4.example.com;
                     }
                    location / {
                          proxy_pass http://backend;
                     }

  我们在 upstream 中指定了一组机器,并将这个组命名为 backend,这样在 proxypass 中只要将请求转移到 backend 这个 upstream 中我们就实现了在四台机器的反向代理加 负载均衡。其中的 iphash指明了我们均衡的方式是按照用户的 ip 地址进行分配。要让配置生效,我们不必重启 nginx 只需要 reload 配置即可。

 重启 :

              sudo service nginx reload

 以上是最简单的通过 nginx 实现静态文件转发、反向代理和负载均衡的配置。在 nginx 中所有的功能都是通过模块来实现的,比如当我们配置 upstream 时是对 upstream 模块,而 server 和 location 是在 http core 模块,其他的还有流控的 limt 模块,邮件的 mail 模块,https 的 ssl 模块。他们的配置都是类似的可以再 nginx 的模块文档中找到详细的配置说明。




猜你喜欢

转载自blog.csdn.net/qq_29807745/article/details/53285981