博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx安装.默认虚拟主机...
阅读量:6288 次
发布时间:2019-06-22

本文共 3067 字,大约阅读时间需要 10 分钟。

hot3.png

11月26日任务

12.6 Nginx安装

12.7 默认虚拟主机
12.8 Nginx用户认证
12.9 Nginx域名重定向

1.Nginx安装

8941cad0f6bad7ad8216a074320e8c1dad7.jpg

e475e0ce5139da30d2cad35ea894af0b9ab.jpg

7031d525944e3fb3573c76297d6ee874cc7.jpg

示例一:

  • cd /usr/local/src  进入目录下
  • wget http://nginx.org/download/nginx-1.12.1.tar.gz  下载Nginx包
  •  tar zxf nginx-1.12.1.tar.gz  解压包
  • ./configure --prefix=/usr/local/nginx  编译
  • make &&  make install  
  • 查看一下各个目录下的文件

d38ebe117e9f456885f8650db861a7549b3.jpg

  • vim /etc/init.d/nginx //复制如下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx )在该网址复制
  • chmod 755 /etc/init.d/nginx  给权限
  • chkconfig --add nginx  加入服务列表
  • chkconfig nginx on 开启开机启动
  • cd /usr/local/nginx/conf/  进入目录下
  • mv nginx.conf nginx.conf.bak  给默认的配置文件模板改名备份
  • vim nginx.conf // 自己创建一个配置文件,写入如下内容(参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf)去该网址复制一份
  •  /usr/local/nginx/sbin/nginx -t  检查脚本是否有语法错误
  • /etc/init.d/nginx  start  启动Nginx服务
  • ps aux | grep nginx 查看一下进程
  • netstat -lntp |grep 80  查看一下监听端口

611fda37c2caef1957a73960ce9c22a53fb.jpg

  • 用curl 测试一下

bf0c83213636b9fc6203a6ad3d09e6fab75.jpg

  • 测试PHP解析
  • vi /usr/local/nginx/html/1.php //创建一个php文档,加入如下内容  
  • <?php    
  • echo "test php scripts.";
  • ?>  
  • curl localhost/1.php 测试一下,如下解析成功

03e38c53dc44da2864644b5cd8fe9d9cfd8.jpg

2.Nginx默认虚拟主机

ca4bdee057c9f64b05af799f7494ea4db7d.jpg

示例一:

  • vim /usr/local/nginx/conf/nginx.conf //增加
  •  include vhost/*.conf  这是要添加的内容

9bb062f45951fc812d7e873e1e2488c934e.jpg

  • mkdir /usr/local/nginx/conf/vhost  创建目录
  • cd !$ 进入目录下
  • vim default.conf //编辑文件,加入如下内容

server

{    

listen 80 default_server;  // 定义它的监听端口,有这个标记的就是默认虚拟主机    

server_name aaa.com;    域名

index index.html index.htm index.php;    指定索引页

root /data/wwwroot/default; 指定网址位置

}  

  • mkdir -p /data/wwwroot/default/  创建目录
  • cd !$ 进入目录下
  • echo “This is a default  site.”>/data/wwwroot/default/index.html 创建一个index.html文件并写入一些内容
  •  /usr/local/nginx/sbin/nginx -t 检查一下
  •  /usr/local/nginx/sbin/nginx -s reload  重新加载一下配置文件
  • curl localhost  测试访问一下

c39a39795c95e86070f967a26485910820b.jpg

  • curl -x127.0.0.1:80 123.com 指定一个域名,测试访问一下

0c35b95e145e4e17e96a28d1db6c6af6137.jpg

  • 不管访问什么域名,只要解析指向到这个服务器,都会访问到该站点,这就是默认虚拟主机

 

3.Nginx用户认证

56d2b80d1c053fbca96cc0b053a8fd19ad8.jpg

52052d5233d70f76b56edb178531c423160.jpg

示例一:用户认证

  • vim /usr/local/nginx/conf/vhost/test.com.conf//创建一个虚拟主机,写入如下内容

server

{    

listen 80;

server_name test.com;    

index index.html index.htm index.php;    

root /data/wwwroot/test.com;    

location  /    

{        

auth_basic              "Auth";         用户认证的名字

auth_basic_user_file   /usr/local/nginx/conf/htpasswd; 用户名密码文件

}

}  

  • yum install -y httpd  yum安装httpd,使用htpasswd工具
  • htpasswd -c /usr/local/nginx/conf/htpasswd aming 生成用户密码,-c是生成的意思,如果生成第二个则不需要用-c,不然会重置
  • /usr/local/nginx/sbin/nginx -t 检查语法是否有错误
  • /usr/local/nginx/sbin/nginx -s reload //测试配置并重新加载配置文件
  • mkdir /data/wwwroot/test.com 创建目录
  •  echo “test.com”>/data/wwwroot/test.com/index.html 建立一个html文件
  •  curl -x127.0.0.1:80 test.com -I//状态码为401说明需要验证  6a8f60020414344b0b446760fa1d73fe3a6.jpg
  • curl -uaming:passwd -x127.0.0.1:80 test.com 访问状态码变为200  

f9326b31b044ccfb2ae5884a075c8538f47.jpg

  • 编辑windows的hosts文件,然后在浏览器中访问test.com会有输入用户、密码的弹窗  

示例二:针对目录的用户认证

  • vi test.com.conf 编辑文件,做如下更改

location  /admin/    

{        

auth_basic              "Auth";        

auth_basic_user_file   /usr/local/nginx/conf/htpasswd;

}

  • 用curl 测试

a0dc3a2be4f69cd525bfd31d5bf7b0229d0.jpg

  • 新建一个测试html文件,并测试一下

1c1ebfd717369abb3628db3c7fe279953b3.jpg

示例三:针对php做限制,如下更改

  • vi test.com.conf 编辑文件

8f7e2ddfcd28eb068a4558f8ae434a3aee7.jpg

 

 

4.Nginx域名重定向

195eadc691518373b618ee4202ae8d401ee.jpg

示例一:

  • 更改test.com.conf 编辑文件:

server ,如下

{    

listen 80;    

server_name test.com test1.com test2.com;  配置域名,而且可以配置多个域名

index index.html index.htm index.php;    

root /data/wwwroot/test.com;    

if ($host != 'test.com' )

{        

rewrite  ^/(.*)$  http://test.com/$1  permanent;    指定调整到哪个域名下,permanent指定301状态码

   }

}  

  • server_name后面支持写多个域名,这里要和httpd的做一个对比  permanent为永久重定向,状态码为301,如果写redirect则为302
  • 检查语法并重新加载配置文件

de335c858e182dc78f07c202b6a51eaaaed.jpg

  • curl 测试一下,任意域名都会重定向到指定域名下

3fdb1803ac4d8c6a870fff10a05d2dd0d7e.jpg

转载于:https://my.oschina.net/u/3962011/blog/2961432

你可能感兴趣的文章
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
poi 导入导出的api说明(大全)
查看>>
Mono for Android 优势与劣势
查看>>
将图片转成base64字符串并在JSP页面显示的Java代码
查看>>
js 面试题
查看>>
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>