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;
}

Nginx-------Nginx的安装和多域名配置的更多相关文章

  1. Nginx源码安装及调优配置

    导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前的优 ...

  2. Nginx多虚拟主机下泛域名配置

    http://www.tuicool.com/articles/F3Azuq 近上一个应用,让用户可以自定义二级域名,所以要配置一个泛域名来解析用户的自定义域名.  首先来说说nginx下的泛域名配置 ...

  3. Nginx源码安装及调优配置(转)

      导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前 ...

  4. CentOS sendmail安装及邮件域名配置

    http://www.centoscn.com/CentosServer/lighttpd/2013/0726/650.html sendmail是Linux下优秀的邮件系统.在不做任何设定的情况下, ...

  5. LNMP环境搭建:Nginx安装、测试与域名配置

    Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...

  6. Nginx与Tomcat安装、配置与优化

    Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...

  7. LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2

    LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2 你是否遇见过:安装LNMP1.3环境后,运行ThinkPHP 3.2,只能打开首页,不能访问控制器,报404错误. 按照 ...

  8. 01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置

     1.下载Nginx,进入Nginx下载地址:http://nginx.org/ 点击nginx-1.8.0,进入:http://nginx.org/en/download.html,下载文件: ...

  9. Nginx 怎么给一台服务器,配置两个域名?详细的解说+截图教程

    一.        环境.条件准备 一台云服务器(我的是腾讯的centos7) 至少两个域名.(我的是simuhunluo.xyz和simuhunluo.top.这两个域名之间没有任何关系,我是在阿里 ...

随机推荐

  1. apache ftp server的外网访问问题

    apache ftp server的外网访问简单配置点如下:

  2. 数组转换list集合问题

    1问题的起因: 项目总要使用一个方法把数组转换成list集合,百度说有这个方法Arrays.asList可以实现 2结果报错 抛出java.lang.UnsupportedOperationExcep ...

  3. responsebody和requestbody的使用

    Controller的方法上加了一个@ResponseBody,那么他的作用是什么呢?/** * 新增或修改一条对象. */ @RequestMapping("/save_field&quo ...

  4. 转:JavaBean 、 Serverlet 总结

    Serverlet简介: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web ...

  5. Mybatis将结果放入map时别名不是驼峰形式

    查询时如果给字段起别名,并且将查询结果映射到一个Map,那么Map的key将是忽略大小写的.映射到一个实体类是没这个问题的. state as addState 从Map中取值时应该:map.get( ...

  6. Hadoop HBase概念学习系列之hbase shell中执行java方法(高手必备)(二十五)

    hbase shell中执行java方法(高手必备),务必掌握! 1. 2. 3. 4. 更多命令,见scan help.在实际工作中,多用这个!!! API参考: http://hbase.apac ...

  7. September 25th 2017 Week 39th Monday

    No man is rich enough to buy back his own past. 没有人富有到可以赎回自己的过去. Those rich are not willing to buy b ...

  8. HTML5新增和废弃的标签

    一.废弃的标签 以下的 HTML 4.01 元素在HTML5中已经被删除,虽然浏览器为了兼容性考虑都还支持这些标签,但建议使用新的替代标签,矛盾的是老浏览器对新标签的支持度又不够,视项目的受众对象而定 ...

  9. BZOJ5329:[SDOI2018]战略游戏(圆方树,虚树)

    Description 省选临近,放飞自我的小Q无心刷题,于是怂恿小C和他一起颓废,玩起了一款战略游戏. 这款战略游戏的地图由n个城市以及m条连接这些城市的双向道路构成,并且从任意一个城市出发总能沿着 ...

  10. 【bzoj 2839】集合计数

    权限题 根据广义容斥的套路就很好做了 设\(g_i\)表示交集至少有\(i\)个元素,\(f_i\)表示交集恰好有\(i\)个元素 显然有 \[g_i=\sum_{j=i}^n\binom{j}{i} ...