立即注册 找回密码

QQ登录

只需一步,快速开始

第一站长论坛

搜索
1框架
查看: 455|回复: 0

Nginx的安装和多域名配置的实现方法

[复制链接]
发表于 2018-10-5 20:28 | 显示全部楼层 |阅读模式
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文件 :
  1. sudo find / -name "nginx.conf"
复制代码
也可以使用下令
  1. sudo nginx -t
复制代码
来输出正在使用的配置文件:
  1. nginx: the configuration file /data/nginx/conf/nginx.conf syntax is oknginx: configuration file /data/nginx/conf/nginx.conf test is successful
复制代码
nginx的配置都是由 directives组成,directives由简单指令大概区块指令组成
简单指令:listen 80;

区块指令由{}包含,区块指令又可以包含多个简单指令和区块指令:
  1. 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端口。那么可以设置如下:
  1. 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生效:
  1. sudo nginx -s reload
复制代码
使用下令重启nginx生效:
  1. /etc/init.d/nginx restart
复制代码
这样就能使用www.525.life访问8880端口,admin.525.life访问8881端口。
每个域名一个conf的写法
我们在上面的例子中使用的是一个文件多个域名的写法,也就是只使用一个conf,在里面不断的增加server。这种方式很直观,但是域名多了不好管理。

Nginx支持引入的用法,也就是我们可以在其他地方先新建好conf文件,conf文件中记录server的信息如下:
admin.conf中的内容是:
  1. server{ listen 80; server_name admin.525.life; location / {  #....  proxy_pass http://localhost:8881; } ##### other directive}
复制代码
www.conf中的内容是:
  1. 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中使用引入下令:
  1. include    /data/nginx/conf/vhost/*.conf;
复制代码
即可。

需要注意的是这句下令应该放在
  1. http{}
复制代码
的花括号内。

因为include的下令引入相当于被引入的所有代码写在nginx.conf中一样。

301跳转
我们留意到生活中很多时间不带www也能访问到某个网站,这也能通过Nginx实现。跟上面的配置一样,再增加一个server如下:
  1. server{ listen 80; server_name 525.life; location / {  #....   proxy_pass http://localhost:8880; } ##### other directive}
复制代码
大概进行301跳转
  1. server{listen 80;server_name 525.life;rewrite ^/(.*) http://www.525.life/$1 permanent;}
复制代码
添加404网页

添加404网页,都可又直接在里面添加,如:
  1. server{listen 80;server_name www.web126.com; #绑定域名error_page 404 /404.html;}
复制代码
禁止IP直接访问
最后另有一个方法需要注意,可能有需要禁止IP直接访问80端口大概禁止非本站的域名绑定我们的IP,这样的话应该
如下处理,放到最前一个server上面即可:
  1. server{listen 80 default;server_name _;return 403;}
复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

免责声明:如果侵犯了您的权益,请联系我们,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|第一站长论坛 ( 闽ICP备16019670号 )

GMT+8, 2019-10-21 12:46 , Processed in 0.055286 second(s), 22 queries .

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc & Style Design

本站提供网上自由讨论使用,所有言论内容来自互联网并不代表本站立场,本站不负任何责任.
如发现有侵权行为,请与我们联系. 我们将立刻从网站上删除,并向所有持版权者致最深歉意.
联系QQ:2837195923

快速回复 返回顶部 返回列表