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

 更新时间:2018年09月26日 15:04:11   作者:张小凡vip  
这篇文章主要介绍了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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Nginx服务器搭建和基本配置详解

    Nginx服务器搭建和基本配置详解

    这篇文章主要介绍了Nginx服务器搭建和基本配置详解,Nginx是事件驱动的高性能服务器,需要的朋友可以参考下
    2015-09-09
  • 使用nginx解决前端js下载跨域问题

    使用nginx解决前端js下载跨域问题

    订单系统增加附件预览,下载的功能,但是这个附件是客户推单时推送过来的,文件连接是类似oss连接,但是是客户的域名,所以导致跨域问题,本文小编将给大家介绍如何用nginx解决前端js下载跨域问题,需要的朋友可以参考下
    2023-10-10
  • nginx修改默认端口方法图文详解

    nginx修改默认端口方法图文详解

    我们都知道nginx 默认使用80端口,有时候我们希望nginx运行在其他端口,下面这篇文章主要给大家介绍了关于nginx修改默认端口的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 通过nginx实现方向代理过程图解

    通过nginx实现方向代理过程图解

    这篇文章主要介绍了通过nginx实现方向代理过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 详解nginx使用ssl模块配置支持HTTPS访问

    详解nginx使用ssl模块配置支持HTTPS访问

    这篇文章主要介绍了详解nginx使用ssl模块配置支持HTTPS访问,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 在Nginx中拦截特定用户代理的教程

    在Nginx中拦截特定用户代理的教程

    这篇文章主要介绍了在Nginx中拦截特定用户代理的教程,并为这些被拦截的用户设置一个黑名单以方便管理,需要的朋友可以参考下
    2015-06-06
  • Nginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景及代码案例详解

    这篇文章主要介绍了Nginx Rewrite使用场景及代码案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 解决Nginx + PHP(FastCGI)遇到的502 Bad Gateway错误

    解决Nginx + PHP(FastCGI)遇到的502 Bad Gateway错误

    昨日,有朋友问我,他将Web服务器换成Nginx 0.6.31 + PHP 4.4.7(FastCGI)后,有时候访问会出现“502 Bad Gateway”错误,如何解决。
    2009-10-10
  • nginx 镜像中文字符集使用详解

    nginx 镜像中文字符集使用详解

    这篇文章主要为大家介绍了nginx 镜像中文字符集使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • nginx配置完rewrite浏览器提示将您重定向的次数过多的解决方法

    nginx配置完rewrite浏览器提示将您重定向的次数过多的解决方法

    本文主要介绍了nginx配置完rewrite浏览器提示将您重定向的次数过多的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论