zoukankan      html  css  js  c++  java
  • Nginx-------Nginx的安装和多域名配置

    Nginx安装

    centos6.x yum默认没有nginx的软件包 
    安装方式: 
    到nginx下载页面http://nginx.org/en/linux_packages.html#stable,复制CENTOS 6的nginx软件源安装包 
    运行命令:wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm 
    安装rpm包 yum install nginx-release-centos-6-0.el6.ngx.noarch.rpm -y , 此步实际只是加入了nginx的软件包源 
    执行 yum install nginx -y 就可以安装好nginx了。

    nginx默认安装为Linux的服务 ,所以可以使用service nginx start, stop, restart, try-restart, reload, force-reload, status来操作nginx。

    Nginx配置文件

    nginx的配置文件默认读取/etc/nginx/nginx.conf文件。

    当然也可以修改使用的conf路径,使用命令:
    ./nginx -c 你的conf文件位置
    可以相对路径或者绝对路径。
    如果是不熟悉环境的Linux服务器,可以使用命令来快速查找nginx.conf文件 :
    sudo  find  / -name "nginx.conf"
    也可以使用命令
    sudo nginx -t 
    来输出正在使用的配置文件:
    nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /data/nginx/conf/nginx.conf test is successful
    nginx的配置都是由 directives组成,directives由简单指令或者区块指令组成 
    简单指令:listen 80; 
    区块指令由{}包含,区块指令又可以包含多个简单指令和区块指令:
    http {
        server {
        }
    }

    多域名配置

    我们都知道如果在域名管理的控制面板设置域名对应ip只能设置到ip,不能详细设置到端口。如果一台服务器部署了多个web应用,使用的不同端口启动的,那么就可以Nginx做映射。

    比如我有一个域名 www.525.life。

    域名还可以分出2级域名: admin.525.life。

    我在域名控制面板把这两个域名都指向我的服务器公网ip 123.123.123.123。

    这时候发现www.525.life和admin.525.life域名访问都只是对应到了 使用端口80的Web程序(默认的)。

    如果我们要访问81端口的应用程序只能使用:

    www.525.life:81或者

    admin.525.life:81。

    但是这样很不方便。我们要把端口去掉也能访问就需要使用Nginx做映射。

    我们期望www.525.life访问8880端口,admin.525.life访问8881端口。那么可以设置如下:

    server
    {
        listen 80;
        server_name www.525.life;
        location / {
            #....
            proxy_pass http://localhost:8880;
        }
        ##### other directive
    }

    server
    {
        listen 80;
        server_name admin.525.life;
        location / {
            #....
            proxy_pass http://localhost:8881;
        }
        ##### other directive
    }

    这样设置就可以了。把8880和8881都映射到80端口的监听。

    使用重载命令使nginx生效:

    sudo nginx -s reload

    使用命令重启nginx生效:

    /etc/init.d/nginx restart

    这样就能使用www.525.life访问8880端口,admin.525.life访问8881端口。

    每个域名一个conf的写法

    我们在上面的例子中使用的是一个文件多个域名的写法,也就是只使用一个conf,在里面不断的增加server。这种方式很直观,但是域名多了不好管理。
    Nginx支持引入的用法,也就是我们可以在其他地方先新建好conf文件,conf文件中记录server的信息如下:
    admin.conf中的内容是:
    server
    {
        listen 80;
        server_name admin.525.life;
        location / {
            #....
            proxy_pass http://localhost:8881;
        }
        ##### other directive
    }
    www.conf中的内容是:
    server
    {
        listen 80;
        server_name www.525.life;
        location / {
            #....
            proxy_pass http://localhost:8880;
        }
        ##### other directive
    }
    admin.conf和www.conf都放在/data/nginx/conf/vhost目录下。
    然后在nginx.conf中使用引入命令:
    include             /data/nginx/conf/vhost/*.conf;
    即可。
    需要注意的是这句命令应该放在
    http{
    }
    的花括号内。
    因为include的命令引入相当于被引入的所有代码写在nginx.conf中一样。 

    301跳转

    我们留意到生活中很多时候不带www也能访问到某个网站,这也能通过Nginx实现。跟上面的配置一样,再增加一个server如下:

    server
    {
        listen 80;
        server_name  525.life;
        location / {
            #....
            proxy_pass http://localhost:8880;
        }
        ##### other directive
    }

    或者进行301跳转

    server
    {
        listen 80;
        server_name 525.life;
        rewrite ^/(.*) http://www.525.life/$1 permanent;
    }

    添加404网页

    添加404网页,都可又直接在里面添加,如:
    server
    {
    listen 80;
    server_name www.web126.com; #绑定域名
    error_page 404 /404.html;


    禁止IP直接访问

    最后还有一个方法需要注意,可能有需要禁止IP直接访问80端口或者禁止非本站的域名绑定我们的IP,这样的话应该
    如下处理,放到最前一个server上面即可:
    server{
    listen 80 default;
    server_name _;
    return 403;
    }

     

  • 相关阅读:
    超星电子书下载攻略
    快速生成PDF书签
    2016抢票软件分享
    Win10安装framework3.5
    .NET破解之分享给新注册的朋友
    封装JedisClient.提供API实现对redis的操作
    java操作redis集群配置[可配置密码]和工具类
    redis 集群java.lang.NoSuchMethodError:SpringJAR包版本冲突错误解决方法
    linux端口开放指定端口的两种方法
    redis requires ruby version 2.2.2的解决方案
  • 原文地址:https://www.cnblogs.com/zhaiyf/p/9051580.html
Copyright © 2011-2022 走看看