Nginx学习---用不同域名访问同一台机器的不同项目
2016-03-09 19:33
876 查看
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux作業系統下,nginx使用epoll事件模型,得益於此,nginx在Linux作業系統下效率相當高。同時Nginx在OpenBSD或FreeBSD作業系統上採用類似於epoll的高效事件模型kqueue。(来自wikipedia)
我也才接触Nginx不久,今天抽空使用了下,感觉非常好,很简单就可以解决同一台机器同时跑两个或者多个项目,而且都通过域名从80端口走。
难得开虚拟机了,就直接用Windows版本来做测试。
首先我修改了hosts,添加了下面一行:
127.0.0.1 www.ergouge.com www.ergouge.net
即用两个不同的域名来访问不同的项目,用tomcat7来作为动态资源服务器,用Nginx作为静态资源的服务器。
下载好nginx-1.8.1,在C盘根目录解压,然后在主目录下新建data目录,用来存放静态资源,本次测试只两张图片作为测试,因此就在data目录里面新建images目录,然后拷贝进去两张图片(1.gif,2.jpg)。
接着在tomcat7主目录下的webapp目录中新建两个项目文件夹testnginx1和testnginx2,里面就直接放简单的一个html文件,也不用动态jsp了,两个index.hmtl分别如下:
接下去就是nginx配置文件了,具体配置的含义略过,网上有很多详细解析每条指令含义的文章。
Windows下启动nginx的方法有三种
* 双击nginx.exe
* cmd到nginx主目录,输入nginx,回车
* cmd到nginx主目录,输入start nginx
建议选择第三种,这样控制台不会被锁定,然后还有些命令:
stop — fast shutdown
quit — graceful shutdown
reload — reloading the configuration file
reopen — reopening the log files
最后做测试,启动tomcat,确认tomcat启动无误,然后启动nginx
在浏览器中输入www.ergouge.com:
在浏览器中输入www.ergouge.net:
实际应用中,可以将两个域名都解析到同一台服务器上,然后如此配置,即可实现同一台服务器部署两个项目,都走80端口
我也才接触Nginx不久,今天抽空使用了下,感觉非常好,很简单就可以解决同一台机器同时跑两个或者多个项目,而且都通过域名从80端口走。
难得开虚拟机了,就直接用Windows版本来做测试。
首先我修改了hosts,添加了下面一行:
127.0.0.1 www.ergouge.com www.ergouge.net
即用两个不同的域名来访问不同的项目,用tomcat7来作为动态资源服务器,用Nginx作为静态资源的服务器。
下载好nginx-1.8.1,在C盘根目录解压,然后在主目录下新建data目录,用来存放静态资源,本次测试只两张图片作为测试,因此就在data目录里面新建images目录,然后拷贝进去两张图片(1.gif,2.jpg)。
接着在tomcat7主目录下的webapp目录中新建两个项目文件夹testnginx1和testnginx2,里面就直接放简单的一个html文件,也不用动态jsp了,两个index.hmtl分别如下:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>Test Nginx</title> </head> <body style="text-align:center;"> 测试NGINX,不同域名映射到同一台服务器的不同项目中。此页面时www.ergouge.com域名。 <div style="margin: 0 auto;"><img src="/images/2.jpg" ></div> </body> </html>
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>Test Nginx</title> </head> <body style="text-align:center;"> 测试NGINX,不同域名映射到同一台服务器的不同项目中。此页面时www.ergouge.net域名。 <div style="margin: 0 auto;"><img src="/images/1.gif" ></div> </body> </html>
接下去就是nginx配置文件了,具体配置的含义略过,网上有很多详细解析每条指令含义的文章。
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; upstream ergouge_web_server { server localhost:8080; } server { listen 80; server_name www.ergouge.com; location / { proxy_pass http://ergouge_web_server/testnginx1/; } location ~ \.(gif|jpg|png)$ { root data; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name www.ergouge.net; location / { proxy_pass http://ergouge_web_server/testnginx2/; } location ~ \.(gif|jpg|png)$ { root data; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
Windows下启动nginx的方法有三种
* 双击nginx.exe
* cmd到nginx主目录,输入nginx,回车
* cmd到nginx主目录,输入start nginx
建议选择第三种,这样控制台不会被锁定,然后还有些命令:
stop — fast shutdown
quit — graceful shutdown
reload — reloading the configuration file
reopen — reopening the log files
最后做测试,启动tomcat,确认tomcat启动无误,然后启动nginx
在浏览器中输入www.ergouge.com:
在浏览器中输入www.ergouge.net:
实际应用中,可以将两个域名都解析到同一台服务器上,然后如此配置,即可实现同一台服务器部署两个项目,都走80端口
相关文章推荐
- nginx代理指定目录
- 访问Nginx发生SSL connection error的一种情况
- Nginx+Naxsi部署专业级Web应用防火墙
- CentOS 6.2实战部署Nginx+MySQL+PHP
- nginx中http核心模块的配置指令2
- nginx中http核心模块的配置指令3
- nginx中http核心模块的配置指令4
- nginx中http的fastcgi模块的配置指令1
- Nginx 学习笔记(一)
- 网站502与504错误分析
- 用zabbix监控nginx_status状态
- 艰难完成 nginx + puma 部署 rails 4的详细记录
- 把Lua编译进nginx步骤方法
- web 应用中常用的各种 cache详解
- Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略
- window+nginx+php环境配置 附配置搭配说明
- 解析CI即CodeIgniter框架在Nginx下的重写规则
- 将PHP从5.3.28升级到5.3.29时Nginx出现502错误
- 基于Nginx0.8.54+PHP5.3.4+MySQL5.5.8的全新LNMP稳定版架构搭建的VPS