利用nginx 虚拟主机、请求转发实现不同端口web访问

摘要:
服务器{listen80;Server_namea.com;//您的域名;root/usr/share/nginx/html;}服务器{listen80;Server_nameb.com;//辅助域名;root/usr/share/nginx.html;//不同目录}2。如果第二网站的端口监听非80端口;例如,gitbook的4000端口;请求需要转发;原则是通过不同域名转发请求;不仅要打开虚拟主机,还要转发相应的虚拟主机请求。

一个服务器上挂一个网站实在是有点浪费;一个服务器上可以放多个网站;可以开启nginx的虚拟主机功能;利用访问的路径或者域名不同访问不同的文件夹;例如:

1、一台服务器上放多个网站使用nginx的配置文件

这是一个网站的配置文件;

    server {
        listen       80;
        server_name  localhost;
        root    /usr/share/nginx/html;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            index  index.html index.htm index.php;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ .php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }

其中核心配置:配置成如下的形式;即可多个网站通过不同的域名进行访问。原理是通过访问的host 将对应的服务器目录返回。

server {
        listen       80;
        server_name  a.com;//你的域名 ;
        root    /usr/share/nginx/html;
       }

server {
        listen       80;
        server_name  b.com;//二级域名;
        root    /usr/share/nginx/htmlb;//不同目录
       }

2、要是第二个网站的端口监听的是非80端口;例如gitbook的4000端口;就需要将请求进行转发;原理是通过不同的域名判断将请求进行转发;不仅要开启虚拟主机还需要将对应的虚拟主机请求转发。配置如下:

server {
        listen       80;
        server_name  a.com;//你的域名 ;
        root    /usr/share/nginx/html;
       }

server { server_name b.com;//对应的域名 listen
80; location / { proxy_pass http://127.0.0.1:4000; } }

这是配置端口转发的核心。

3、重启nginx

service nginx restart

访问a.com 对应预配置的文件路径;访问b.com 会将请求转发到4000端口。配置完成后有两种方式可以访问到目录;

第一种可以直接使用域名进行访问 b.com ;这种方式默认使用http协议 80端口进行访问;在服务器端首先会判断来访的域名;由对应的虚拟主机处理后将请求转发到4000端口;

第二种是通过a.com:4000 (或者b.com:4000 因为a,b域名解析的IP地址是相同的)进行访问;这种方式直接使用4000端口的监听程序进行处理请求,并返回数据。

免责声明:文章转载自《利用nginx 虚拟主机、请求转发实现不同端口web访问》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringMVC学习笔记3Windows 汇编语言编程教程[转]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用 Consul + Docker + Registrator + Consul-template 搭建可伸缩服务发现平台

背景介绍 Docker 的出现,改变了软件的交付方式,使得开发、测试、运维都能在一个完全统一的环境中进行。在服务容器化的网络中,需要添加服务发现功能。每个服务可能对应多个示例以容器运行在多个机器上,并且提供自动注册和失败检测机制。目前服务发现已经有很多成熟的解决方案,例如 Spring Cloud中的 Eureka 注册中心,Hystrix 断路器,zuu...

CodeIgniter框架——nginx下的配置

odeigniter(CI)是一个轻量型的PHP优秀框架,但是它是在apache服务器下开发的,在nginx下需要特别的配置才可以使用。 对nginx的配置如下: 1 server { 2 listen 80 default_server; 3 listen [::]:80 default_server ipv6only=on;...

Nginx线上部署多个Vue项目(路径区分)

Nginx线上部署多个Vue项目(路径区分) nginx 多静态文件部署。 我个人博客项目占用了nginx根路径,而我只有一个域名,也不准备用二级域名了, 所以就直接用路径区分开。 一个域名,只部署一个静态文件服务,那很简单,只用把打包后文件放上去就行。 多个Vue项目主要就是路径问题,静态js文件以及自定义的路由。 原文请访问 我个人博客地址 博客地址:...

ELK 二进制安装并收集nginx日志

对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch(java)、Logstash(jruby)、Kibana技术栈的结合, EL...

部署高并发python后端(Systemd+Nginx+Gunicorn+Gevent+Supervisor+Flask )

一、前言 在Python开发中,服务部署有各种各样的方案,同时作为服务端语言也是比较吃力的,没有Java那样有很成熟的方案。在这里介绍一个高并发部署方案:Systemd+Nginx+Gunicorn+Gevent+Supervisor+Flask。 众所周知 Flask 是一个同步的框架,处理请求的时候是以单进程的方式,当同时访问的人数过多时,Flask...

nginx配置详情(总结)

Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务 Nginx工作原理 Nginx由内核和模块组成,完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),location配置的命令会启动不同模块完成工作。...