Nginx的安装和多域名配置

作者:白夜船长

来源:http://blog.csdn.net/zzq900503/article/details/70049348

Nginx安装

centos6.x yum默认没有nginx的软件包 
安装方式: 
到nginx下载页面http://nginx.org/en/linux_packages.html#stable,复制CENTOS 6的nginx软件源安装包 
运行命令:

安装rpm包

此步实际只是加入了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路径,使用命令:

可以相对路径或者绝对路径。
如果是不熟悉环境的Linux服务器,可以使用命令来快速查找nginx.conf文件 :

也可以使用命令

来输出正在使用的配置文件:

nginx的配置都是由 directives组成,directives由简单指令或者区块指令组成 
简单指令:listen 80; 
区块指令由{}包含,区块指令又可以包含多个简单指令和区块指令:

多域名配置

我们都知道如果在域名管理的控制面板设置域名对应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端口。那么可以设置如下:

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

使用重载命令使nginx生效:

使用命令重启nginx生效:

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

每个域名一个conf的写法

我们在上面的例子中使用的是一个文件多个域名的写法,也就是只使用一个conf,在里面不断的增加server。这种方式很直观,但是域名多了不好管理。
Nginx支持引入的用法,也就是我们可以在其他地方先新建好conf文件,conf文件中记录server的信息如下:
admin.conf中的内容是:

www.conf中的内容是:

admin.conf和www.conf都放在/data/nginx/conf/vhost目录下。
然后在nginx.conf中使用引入命令:

即可。
需要注意的是这句命令应该放在
http{ }
的花括号内。
因为include的命令引入相当于被引入的所有代码写在nginx.conf中一样。

301跳转

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

或者进行301跳转

添加404网页

添加404网页,都可又直接在里面添加,如:

禁止IP直接访问

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

马哥想听你动人的成长故事,所以发起了一个征文活动。

长按二维码添加我的个人微信,立刻了解详情。

时间: 2024-12-19 14:44:31

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

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-rel

CentOS sendmail安装及邮件域名配置

http://www.centoscn.com/CentosServer/lighttpd/2013/0726/650.html sendmail是Linux下优秀的邮件系统.在不做任何设定的情况下,sendmail发出邮件的邮箱源地址形如[email protected],这种地址几乎会被所有的邮箱认定为SPAM(垃圾邮件)或直接拒收. 1. Sendmail安装 在CentOS下,sendmail一般默认是随操作系统一起安装的.如果安装系统时没有安装sendmail服务,手动安装sendma

nginx的安装与简单配置

安装环境:ubuntu 14.04 安装方式:源码安装 1.去官方网站https://nginx.org/en/download.html,下载一个稳定的版本.并解压. 2, 安装nginx的依赖包,一共有三个(资料来源与网络): 安装 prce: sudo apt-get update sudo apt-get install libpcre3 libpcre3-dev 安装 zlib: sudo apt-get install zlib1g-dev 安装openssl: sudo apt-g

手把手教你nginx基础安装配置

手把手教你nginx基础安装配置! 一.Nginx安装及简单配置: 安装环境和依赖的包: #yum groupinstall "developmenttools" "server platform development" # yum -yinstall pcre-devel #yum install openssl-devel 下载相关nginx源码包: #wgethttp://nginx.org/download/nginx-1.6.2.tar.gz 解压缩源码

Ubuntu中Nginx的安装与配置全过程

1. 在终端运行命令:$sudo apt-get install nginx ubuntu安装Nginx之后的文件结构大致为: 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下 启动程序文件在/usr/sbin/nginx 日志放在了/var/log/nginx中,分别是access.log和error.log 并已经在/etc/init.d/下创建了启动脚本nginx 默认的虚拟主机的目录设置在了/usr/share/

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

LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2 你是否遇见过:安装LNMP1.3环境后,运行ThinkPHP 3.2,只能打开首页,不能访问控制器,报404错误. 按照以下3步设置,即可解决. ThinkPHP支持的URL模式有四种:普通模式.PATHINFO.REWRITE和兼容模式,系统默认的PATHINFO模式. LNMP1.3 一键安装完成后,默认支持REWRITE,需要手动开启 PATHINFO. 第1步修改:php.ini文件位置:/usr/local

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

导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前的优化 [[email protected] ~]# wget http://nginx.org/download/nginx-1.10.1.tar.gz [[email protected] ~]# tar xvf nginx-1.10.1.tar.gz -C /usr/local/src/ [[em

nginx的安装配置详解

title: nginx的安装配置详解tags: nginx,虚拟服务器,curl nginx的安装配置详解 1. 介绍各个常用的服务端口 21 ftp :22 ssh:25 smtp:3306 mysql:873 rsync:3389 远程桌面:161 snmp:111 rpcbind:80 www http:443 https:110 pop3:53 dns:514 rsyslog 我们常用的nslookup和dig查询域名解析工具的安装包为bind-utils,如yum install b

LINUX——关于nginx的安装配置以及如何简易的使用

nginx是linux中非常重要的一部分,学会使用将不可少的.关闭防火墙 [[email protected] ~]# systemctl stop firewalld [[email protected] ~]# systemctl disable firewalld [[email protected] ~]# sed -ri 's/(SELINUX=).*/\1disabled/g' /etc/selinux/config [[email protected] ~]# setenforce