nginx入门(四) nginx的简单实战

前面讲了什么是nginx和nginx能干什么,如何在linux上安装nginx以及nginx配置文件字段含义。
本文主要学习nginx虚拟主机并进行基于端口的简单实战

nginx虚拟主机

nginx虚拟主机就是将一台服务器分割成多个“虚拟服务器”,每个虚拟服务器都有自己的硬盘空间;
nginx虚拟机是在web服务里的一个独立的网站站点,这个站点对应独立的域名(IP),具有独立的程序和资源目录,可以独立的对外提供服务。这个独立的站点配置是在nginx.conf中使用server{}代码块标签来表示一个虚拟主机。Nginx支持多个server{}标签,即支持多个虚拟主机站点。

实验:

环境 ubuntun 16.4

1,基于端口的虚拟主机

1,不同的server代表着不同的虚拟主机,所以应该在里面创建相应的server

server {
        listen 80 default_server;
        listen [::]:80 default_server;


        root /var/www/html;

        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
      
}

server {
        listen 8011;
        listen [::]:8011;

        root /var/www/html/aa;

        server_name localhost;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

}

2,创建对应的html文件
mkdir /var/www/html/aa
vim /var/www/html/aa/index.html 然后在里面写上 hello nginx
3,重新启动 nginx -s reload
4, 验证,访问 ip和ip:8011可以分别看到不同的结果


nginx:8011
nginx:80

2,基于域名的虚拟主机

和上面的类似
1,简历和域名相对应数量的server 端口号相同,然后在server_name 后面对应不同的域名
2,之后重启,然后测试

3,基于IP的虚拟主机

基本步骤:增加网卡获得多ip或者增加辅助ip,修改nginx配置文件配置多ip,重启nginx服务,创建对应的不同站点目录并上传站点文件,也可都使用一个站点目录,通过多ip来访问

实现在同一个及其上运行java和php开发的服务器

原理:配置代理.

1.开启 php + apache 占用808端口,为程序入口

2.开启 tomcat ,修改端口为8080,为程序入口

3.开启 nginx 占用80端口,为请求总入口,以请求路径进行区分.

如:www.test.com 则是通过nginx代理访问 php 808入口,www.test.com/java ,则是通过nginx代理访问 tomcat 8080端口.

nginx 配置文件:

upstream app_server{
server 127.0.0.1:808;
}

upstream java_server{
server 127.0.0.1:8080;
}

location / 
{
      index index.php index.html index.htm;
      proxy_redirect off;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
          proxy_pass http://app_server;
 }

location /java
{
index index.jsp index.html index.htm;
proxy_redirect off;
proxy_set_header Host remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://java_server;
}

分析nginx的工作目录,内容

[root@qishione nginx112]# ls
client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp

conf 存放nginx的配置文件的
  nginx.conf 这里是控制nginx所有功能的文件
  html 存放网页html的目录
  index.html
  logs 存放log日志文件

sbin 存放nginx可执行命令的
  nginx脚本命令

你可能感兴趣的:(nginx入门(四) nginx的简单实战)