Nginx配置文件理解

之前除了一篇nginx基础安装和基础使用的文章,由于长时间不使用nginx 了,再写一篇文章加强一下对nginx 的理解;当然更深入细致的理解最好去官网细致学习一下,并配和实践多多练习才是最好的;
nginx常用的特性:

  1. 虚拟主机
  2. 反向代理
  3. 负载均衡
    虚拟主机:
    同一个物理主机提供多个网站的服务,在用户端感知是不同的网站地址,以为是不同的服务器在提供服务,实际则是同一个服务器;通过不同的ip、域名、端口、路径进行区分,常用的方式也是这几种;这样的好处是多个网站共同享用资源,使物理资源得到最大化的使用,降低了闲置成本;当然坏处也是有的,不适合可用性,可靠性要求比较高的系统使用,如果服务器宕机,那部署在这个服务器上的所有服务将无法使用;
    反向代理
    不直接暴露原有服务的地址和端口,通过访问另一个地址ip的方式间接访问服务,而这里另一个地址ip就是原有服务的代理,反向的提原服务提供服务;
    负载均衡
    对于访问量比较大的系统,我们可以通过部署集群的方式来分担一个服务器的压力,nginx 可以提供一个统一个入口,按照一定的规则分发到不同的集群节点上;nginx有着优秀的负载均衡能力,单个nginx 能负载5万的访问量;
    反向代理和负载均衡的配置同时使用的场景比较多;

虚拟主机案例
基于域名的虚拟主机:
1、为虚拟主机提供域名和IP的映射

echo "192.168.229.60 www.ly.com www.weq.com" >> /etc/hosts

2、为不同完整配置主页.

mkdir -p /var/www/html/ly/
mkdir -p /var/www/html/weq/
echo "

www.ly.com

"
> /var/www/html/ly/index.html echo "

www.weq.com

"
> /var/www/html/weq/index.html

3、修改配置文件

vim /usr/local/nginx/conf/nginx.conf
 
server {
        listen       80;
        server_name  www.ly.com;                        #设置域名          
        charset utf-8;                                  #设置网页字符集
        access_log  logs/ly.com.access.log;             #设置日志名
        location / {
            root   /var/www/html/ly;                    #设置www.ly.com的工作目录
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       80;           
        server_name  www.weq.com;                       #设置域名
        charset utf-8;                                  #设置网页字符集
        access_log  logs/weq.com.access.log;            #设置日志名
        location / {
            root   /var/www/html/weq;                   #设置www.weq.com的工作目录
            index  index.html index.htm;
        }

4、重启nginx
5、分别浏览器访问http://www.ly.com、http://www.weq.com会看到不同的主页内容;

反向代理、负载均衡案例
这两个可以参考网友们提供的这个案例就够了,既有反向代理proxy_pass配置,也用到了upstream配置
Nginx配置文件理解_第1张图片
这里location后的路径要注意一下,其匹配规则有一定的优先级,且这里的距离地址,就是浏览器内除了ip:port以外的其他部分,例如http:127.0.0.1:8080/seriver/api,location的内容就是控制除了http:127.0.0.1:8080这部分之外其他路径的访问情况的;

你可能感兴趣的:(nginx,java,运维)