服务器学习心得


基于ip

<h1>虚拟主机配置-基于ip</h1> <ul> <li>Nginx总结(二)基于ip的虚拟主机配置 </li> <li><a href="https://www.cnblogs.com/zhangweizhong/p/11378542.html">https://www.cnblogs.com/zhangweizhong/p/11378542.html</a></li> </ul> <h2>基于ip的虚拟主机配置</h2> <ul> <li>Linux操作系统允许添加IP别名,就是在一块物理网卡上绑定多个lP地址。</li> <li>这样就能够在使用单一网卡的同一个服务器上运行多个基于IP的虚拟主机。</li> </ul> <h2>应用场景</h2> <ul> <li>一台nginx服务器绑定两个ip地址 <ul> <li>192.168.32.132,192.168.32.133</li> </ul></li> <li>访问不同的ip请求不同的html目录 <ul> <li>访问 <a href="http://192.168.32.132">http://192.168.32.132</a> 将访问 192.168.32.132 目录下的html网页</li> <li>访问 <a href="http://192.168.32.133">http://192.168.32.133</a> 将访问 192.168.32.133 目录下的html网页</li> </ul></li> </ul> <h2>准备环境</h2> <ul> <li>创建 192.168.32.132 的虚拟机,保证本地电脑和虚拟网络通畅</li> </ul> <h2>绑定多ip</h2> <ul> <li> <p>修改网络配置文件</p> <pre><code class="language-shell">cd /etc/sysconfig/network-scripts</code></pre> </li> <li> <p>编辑文件内容</p> <pre><code class="language-nginx">vi ifcfg-ens32 # 注释 BOOTPROTO=dhcp # BOOTPROTO=dhcp # 添加绑定ip参数配置 # 绑定ip IPADDR0=192.168.32.132 PREFIX0=24 IPADDR1=192.168.32.133 PREFIX1=16</code></pre> </li> <li> <p>完整文件配置实例</p> <pre><code class="language-nginx">TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no # BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens32 UUID=a91d5f57-27c4-4da3-ae32-7f95642714c8 DEVICE=ens32 ONBOOT=yes # 绑定ip IPADDR0=192.168.32.132 PREFIX0=24 IPADDR1=192.168.32.133 PREFIX1=16</code></pre> </li> </ul> <h3>保存修改,重启网络</h3> <pre><code class="language-shell">systemctl restart network</code></pre> <h2>进行配置</h2> <ul> <li> <p>创建目录</p> <pre><code class="language-shell">cd /usr/local/nginx/html mkdir 192.168.32.132 mkdir 192.168.32.133 ls # 在两个目录下分别创建文件index.html,方便配置成功后测试使用</code></pre> </li> <li> <p>编辑配置文件</p> <pre><code class="language-shell">cd /usr/local/nginx/conf cp nginx.conf nginx.conf_bak # 提前备份配置文件 vi nginx.conf</code></pre> </li> <li> <p>配置虚拟主机 192.168.32.132</p> <pre><code class="language-nginx">server { # 监听的ip和端口,配置 192.168.32.132:80 listen 80; # 虚拟主机名称这里配置ip地址 server_name 192.168.32.132; # 所有的请求都以 / 开始,所有的请求都可以匹配此 location location / { # 使用root指令指定虚拟主机目录即网页存放目录 # 比如访问 http://ip/test.html 将找到 /usr/local/nginx/html/192.168.32.132/test.html # 比如访问 http://ip/item/test.html 将找到 /usr/local/nginx/html/192.168.32.132/item/test.html root /usr/local/nginx/html/192.168.32.132; # 指定欢迎页面,按从左到右顺序查找 index index.html index.htm; } }</code></pre> </li> <li> <p>配置虚拟主机 192.168.32.133</p> <pre><code class="language-nginx">server { listen 80; server_name 192.168.32.133; location / { root /usr/local/nginx/html/192.168.32.133; index index.html index.htm; } }</code></pre> </li> </ul> <h2>测试</h2> <ul> <li> <p>重新启动nginx,观察端口监听状态</p> <pre><code class="language-shell">systemctl restart nginx ps aux | grep nginx</code></pre> </li> <li> <p>访问虚拟主机 192.168.32.132</p> <ul> <li><a href="http://192.168.32.132">http://192.168.32.132</a></li> </ul> </li> <li> <p>访问虚拟主机 192.168.32.133</p> <ul> <li><a href="http://192.168.32.133">http://192.168.32.133</a></li> </ul> </li> </ul> <h2>优化配置文件写法</h2> <ul> <li> <p>创建目录</p> <pre><code class="language-shell">cd /usr/local/nginx/conf mkdir vhosts</code></pre> </li> <li> <p>编辑配置文件</p> <pre><code class="language-shell">cd /usr/local/nginx/conf vi nginx.conf # 编写内容 include vhosts/*.conf; # server {} 块后写入此代码</code></pre> </li> <li> <p>增加两个虚拟主机配置文件</p> <pre><code class="language-shell">cd /usr/local/nginx/conf/vhosts 192.168.32.132.conf 192.168.32.133.conf</code></pre> </li> <li> <p>将上边配置虚拟主机内容放到文件中</p> <ul> <li>192.168.32.132.conf文件中填写</li> </ul> <pre><code class="language-nginx">server { listen 80; server_name 192.168.32.132; location / { root /usr/local/nginx/html/192.168.32.132; index index.html index.htm; } } </code></pre> <ul> <li>192.168.32.133.conf文件中填写</li> </ul> <pre><code class="language-nginx">server { listen 80; server_name 192.168.32.133; location / { root /usr/local/nginx/html/192.168.32.133; index index.html index.htm; } }</code></pre> </li> <li> <p>去除 nginx.conf 中,配置虚拟主机 192.168.32.132 和 192.168.32.133 的内容</p> </li> <li> <p>重新启动nginx,再次进行测试</p> <pre><code class="language-shell">systemctl restart nginx ps aux | grep nginx</code></pre> <p><a href="http://192.168.32.132">http://192.168.32.132</a> <a href="http://192.168.32.133">http://192.168.32.133</a></p> </li> </ul>

页面列表

ITEM_HTML