nginx [engine x] 是由 Igor Sysoev开发的一个HTTP 服务器和mail 代理服务器软件.虽然刚刚发布两年多, Nginx 因其稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx 超越Apache的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中有新浪、网易、腾讯等门户网站,六间房、酷6等视频分享网站,Discuz!、水木社区等知名论坛,豆瓣、YUPOO等新兴Web 2.0网站。Nginx 在国内的应用正在不断发展壮大!新近发现Nginx 应用在国内越发火热了,很多网站都开始转向Nginx 了。
一,首先下载nginx 0.7.52的windows版本,下载地址:http://sysoev.ru/nginx/nginx-0.7.52.zip,并到PHP 官方下载php。
然后,解压nginx-0.7.52.zip到C盘的根目录,并将目录名改为nginx。执行下列操作
1, cd nginx
2, start nginx
这样,nginx就启动了。打开浏览器,输入http://127.0.0.1/ 就可以看到nginx的欢迎页面了。nginx的其他命令
nginx -s stop //停止nginx
nginx -s reload //重新加载配置文件
nginx -s quit //退出nginx
#网站的图片较多,更改较少,将它们在浏览器本地缓存15天
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 15d;
}
#网站会加载很多JS、CSS,将它们在浏览器本地缓存1天
location ~ .*\.(js|css)?$
{
expires 1d;
}
location /(WEB-INF)/ {
deny all;
}
#设定本虚拟主机的访问日志
access_log /host/nginx/logs/down/access.log access;
#日志的路径,每个虚拟机一个,不能相同
server_name_in_redirect off;
实验环境
win7+ubuntu(vmware)
win7 tomcat(ip and por:192.168.0.108:8080)
linux tomcat(ip and por:192.168.110.129:8080)
在ubuntu中安装nginx(sudo apt-get install nginx),默认安装在etc/nginx
在两台tomcat的webapps下的ROOT中,为了表示出访问的是那一台tomcat,替换index.html以及index.jsp,其中分别写入linux和windows。
nginx的启动关闭和测试命令如下:
- 关闭nginx
- zhengx@zhengx-virtual-machine:~$ sudo pkill -9 nginx
- 测试nginx是否成功配置
- zhengx@zhengx-virtual-machine:~$ sudo nginx -t
- nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
- nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
- 开启nginx
- zhengx@zhengx-virtual-machine:~$ sudo nginx
- nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
- zhengx@zhengx-virtual-machine:~$
其中nginx.conf的配置文件如下所示
- user www-data;
- worker_processes 4;
- pid /var/run/nginx.pid;
- events {
- worker_connections 768;
- # multi_accept on;
- }
- http {
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 65;
- types_hash_max_size 1024;
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
- access_log /var/log/nginx/access.log;
- error_log /var/log/nginx/error.log;
- gzip on;
- upstream localhost {
- #win7的tomcat访问url
- server 192.168.0.108:8080;
- #linux的tomcat访问url
- server 192.168.110.129:8080;
- }
- server {
- listen 80;
- server_name localhost;
- charset utf-8;
- location / {
- root html;
- index index.html index.htm;
- #跳转到win7上的tomcat
- proxy_pass http://192.168.0.108:8080;
- proxy_set_header X-Real-IP $remote_addr;
- client_max_body_size 100m;
- }
- location ~ ^/(WEB-INF)/ {
- deny all;
- }
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root html;
- }
- }
- include /etc/nginx/server.conf;
- include /etc/nginx/conf.d/*.conf;
- include /etc/nginx/sites-enabled/*;
- }
为了便于维护把nginx.conf拆分一部分代码出来分别是upstream.conf和location.conf
nginx.conf的配置文件如下:
- user www-data;
- worker_processes 4;
- pid /var/run/nginx.pid;
- events {
- worker_connections 768;
- # multi_accept on;
- }
- http {
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 65;
- types_hash_max_size 1024;
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
- access_log /var/log/nginx/access.log;
- error_log /var/log/nginx/error.log;
- gzip on;
- include /etc/nginx/upstream.conf;
- server {
- listen 80;
- server_name localhost;
- charset utf-8;
- include /etc/nginx/location.conf;
- }
- include /etc/nginx/conf.d/*.conf;
- include /etc/nginx/sites-enabled/*;
- }
upstream.conf的配置文件如下:
- upstream localhost {
- server 192.168.0.108:8080;
- server 192.168.110.129:8080;
- }
location.conf的配置文件如下:
- location / {
- root html;
- index index.html index.htm;
- #去找域名为localhost的upstream
- proxy_pass http://localhost;
- proxy_set_header X-Real-IP $remote_addr;
- client_max_body_size 100m;
- }
- location ~ ^/(WEB-INF)/ {
- deny all;
- }
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root html;
- }
相关推荐
【Nginx 作为动静分离、缓存与负载均衡初探1】 在现代Web服务架构中,Nginx因其高效、稳定以及丰富的功能而被广泛用作反向代理服务器、负载均衡器和静态内容服务器。本篇文章将探讨如何利用Nginx实现动静分离、缓存...
- **负载均衡模块**:Nginx提供了多种负载均衡策略,如轮询、最少连接等,用于将请求分发到不同的后端服务器。 #### 下篇:Nginx原理解析 ##### 高性能服务器设计 - **C10K问题**:C10K问题是早期网络服务器面临...
**14.2 Nginx负载均衡实例** Nginx支持多种负载均衡算法,如轮询(round-robin)、最少连接(least-connected)等。 #### 十五、Nginx原理代码分析 **15.1 剖析Nginx等单线程服务器设计原理与性能优势** 深入解析Nginx...
#### 十四、Nginx负载均衡 **1. Nginx基础知识** - 负载均衡是Nginx的一项核心功能之一。 - Nginx支持多种负载均衡算法,如轮询、最少连接数、哈希等。 **2. Nginx负载均衡实例** - 通过配置`upstream`块来定义...
- **初探Nginx架构**:Nginx采用了一个异步事件驱动的架构模型,该模型使得Nginx能够高效地处理大量的并发连接。 - **Nginx基础概念**: - **Master-Worker模式**:一个主进程负责监听客户端连接请求,并创建多个...
- 随着互联网技术的发展,Nginx逐渐成为了处理动态内容、负载均衡、反向代理等任务的重要工具之一。 2. **使用简介**: - Nginx可以作为独立的Web服务器运行,也可以与后端的其他Web应用服务器(如Apache)配合...
3. **负载均衡**:利用负载均衡技术将请求合理分配到不同的服务器上,避免单点故障。 4. **缓存机制**:引入缓存来减少数据库的访问压力,提高系统响应速度。 5. **分布式存储**:采用分布式文件系统或数据库来存储...
1. 高并发处理:采用负载均衡技术分散流量,如Nginx、HAProxy等;利用缓存技术减轻数据库压力,如Redis、Memcached。 2. 数据库优化:水平扩展(Sharding)、垂直拆分、读写分离,以及使用NoSQL数据库配合关系型...
文档可能介绍了各种负载均衡算法,如轮询、最少连接数、IP哈希等,以及硬件和软件负载均衡器的比较,例如Nginx、HAProxy等。 4. **大型Web2.0站点构建技术初探**:Web2.0的特性,如用户生成内容和社交网络,对系统...
为了应对高并发访问,接口服务网关一般采用Nginx负载均衡集群的设计。这样的设计能够在高流量情况下合理分配资源,确保系统的稳定性和高可用性。 在数据库设计方面,为满足业务负载的要求,系统采用主从模式以应对...
这涉及到数据库查询优化、分布式缓存如Memcached或Redis的使用、负载均衡器如Nginx或HAProxy的配置,以及代码层面的性能调优。 2. **Web2.0站点构建技术**: - 《大型Web2.0站点构建技术初探》涵盖了AJAX(异步...
nginx是一个高性能的HTTP和反向代理服务器,同时也常用于作为负载均衡器。在安装nginx之后,需要对nginx进行配置,以便将外部的HTTP请求转发到应用服务器。配置文件通常位于/etc/nginx/sites-available/目录下,需要...
若要部署到生产环境,可考虑使用Gunicorn或uWSGI等WSGI服务器,再配合Nginx进行反向代理和负载均衡。 总结,"StepDone"项目是一个学习Flask的好例子,它涵盖了Flask的基本使用,包括路由、视图、模板渲染以及可能的...
虽然Flask轻量级,但依然可以部署到各种服务器环境,如本地的Werkzeug服务器、Gunicorn或uWSGI,配合Nginx反向代理进行负载均衡。在生产环境中,通常会使用虚拟环境管理依赖,并通过Gunicorn或uWSGI来提高性能。 ...