nginx中常用问题(nginx 301/绑定独立IP地址)

如果是Apache的话比较好设定,可以用NameVirtualHost来指定哪个IP绑定哪个域名,但是nginx应该如何把ip绑定到域名商呢?Slicehost论坛上也有人讨论过如何绑定ip的问题。核心的问题就是,如果直接输入ip,nginx会把这个ip对应到哪个域名上呢?答案是随机的。如果想要在某个域名做为catchall的,可以设定如下规则:

 代码如下 复制代码
server{
listen  80 default;
....
}

那么如何绑定独立IP呢?由于ip信息其实是在在NGINX官方HTTPcore Listen的说明文档上也提到了这个是用方法,可以比较方便的是使用如下

 代码如下 复制代码
server{
listen  99.69.16.3:80;
server_name www.111cn.net
....
}

也可以直接这样写:

 代码如下 复制代码
server{
listen  114.163.186.110;
server_name www.111cn.net
....
}
server{
listen  99.69.16.3;
server_name www.111cn.net
....
}

这样独立的ip就被绑定到固定的域名上去了

q2

第一种方法是判断nginx核心变量host(老版本是http_host):

 代码如下 复制代码
server {
server_name www.111cn.net www.111cn.net ;
if ($host != 'www.111cn.net' ) {
rewrite ^/(.*)$ http://www.111cn.net/$1 permanent;
}
...
}

第二种方法:

 代码如下 复制代码
server {
server_name www.111cn.net;
rewrite ^/(.*) http://www.111cn.net/$1 permanent;
}

我用的是第一种方法,这两种方法中, permanent是关键,详细说明见nginx重定向规则说明。

last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301

时间: 2024-07-30 09:27:42

nginx中常用问题(nginx 301/绑定独立IP地址)的相关文章

CohoHa VPS主机添加多个独立IP地址及系统配置详解

在这篇文章中老左不去讨论CohoHa数据中心(用的较多的是日本和新加坡)性能和速度稳定性如何,因为也有看到不少的用户在使用,老左也有开了新加坡机房在使用,且稳定性还是可以接受的.默认开设的ConoHa VPS主机只有一个独立IPV4地址,如果我们有些项目可能需要添加多个IP地址使用,比如我们一台VPS中添加多个独立IP,这样不同的站点分配不同的独立IP,可以节省一定的成本.   追加独立IP之后,并不是自动匹配到系统中的,我们需要进行配置文件的设置.因为在之前一段时间有看到不少的网友有提到有这样

linux系统双网卡绑定单个IP地址

双网卡绑定单个IP 地址 为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断.多网卡绑. 为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断.在Linux下叫bonding,IBM称为etherchanel,broadcom叫team,但是名字怎么变,效果都是将两块或更多的网卡当做一块网卡使用,在增加带宽的同时也可以提高冗余性.比如我

socket-java的Socket通信中如何获取android手机wifi的IP地址。

问题描述 java的Socket通信中如何获取android手机wifi的IP地址. # java的Socket通信中如何获取android手机wifi的IP地址???. 解决方案 这个可以直接用java中的获取IP方法 InetAddress addr = InetAddress.getLocalHost(); ip=addr.getHostAddress().toString;//获得本机IP address=addr.getHostName()toString;//获得本机名称

我使用WEB,如何在程序中,获取CPU、硬盘、IP地址及其它信息?

问题描述 我使用WEB,如何在程序中,获取CPU.硬盘.IP地址及其它信息? 解决方案 解决方案二:获取Server上的信息?先找到本地命令,能看到这些信息的,然后在程序中用Runtime.exec(去执行这些本地命令.解决方案三:估计他想获得用户的这些信息!如果是这样的话,想都不用想了!解决方案四:IP地址能获取当客户端的其它信息通过java是没办法的不晓得别的技术能行不webstart方式运行的客户端还行web方式的话active插件不晓得可以不(纯粹猜测,没用过)解决方案五:用户的这些信息

Linux VPS 绑定添加IP地址(Debian版)详解

我们需要编辑文件了.  代码如下 复制代码 /etc/init.d/networking restart 找到ifcfg-eth0文件,复制一份重命名为"ifcgf-eth0:0″  代码如下 复制代码 DEVICE=eth0:0 onboot=YES BOOTPROTO=static IPADDR=198.40.52.132 #IP NETMASK=255.255.255.224 #子掩码 GATEWAY=198.40.52.129 #网关 主要是网卡的设置名称,要跟文件名一致,并且修改为你的

Nginx中配置开启Nginx Status来查看服务器运行状态_nginx

nginx和php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有帮助.为了后续的zabbix监控,我们需要先了解nginx状态页是怎么回事.1. 启用nginx status配置在默认主机里面加上location或者你希望能访问到的主机里面. server { listen *:80 default_server; server_name _; location /ngx_status { stub_status on; access_log off; #all

如何在Linux中找出所有在线主机的IP地址

你可以在 Linux 的生态系统中找到很多网络监控工具,它们可以为你生成出网络中所有设备的摘要,包括它们的 IP 地址等信息. 然而,实际上有时候你只需要一个简单的命令行工具,运行一个简单的命令就能提供同样的信息. 本篇教程会向你展示如何找出所有连接到给定网络的主机的 IP 地址.这里我们会使用 Nmap 工具来找出所有连接到相同网络的设备的IP地址. Nmap (Network Mapper 的简称)是一款开源.强大并且多功能的探查网络的命令行工具,用来执行安全扫描.网络审计.查找远程主机的开

在 Linux 中找出所有在线主机的 IP 地址

你可以在 Linux 的生态系统中找到很多网络监控工具,它们可以为你生成出网络中所有设备的摘要,包括它们的 IP 地址等信息. 然而,实际上有时候你只需要一个简单的命令行工具,运行一个简单的命令就能提供同样的信息. 本篇教程会向你展示如何找出所有连接到给定网络的主机的 IP 地址.这里我们会使用 Nmap 工具来找出所有连接到相同网络的设备的IP地址. Nmap (Network Mapper 的简称)是一款开源.强大并且多功能的探查网络的命令行工具,用来执行安全扫描.网络审计.查找远程主机的开

linux中tomcat记录负载均衡真实用户IP地址

Tomcat有nginx或其他软件做负载均衡,tomcat需要记录真实客户端地址,需要在Host或Context下定义如下内容:  代码如下 复制代码 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                 prefix="localhost_access_log." suffix=".txt&quo