nginx作为反向代理搭建服务器的优点。
- 处理响应请求很快:单次请求会得到更快的响应。在高峰期,Nginx 可以比其它的 Web 服务器更快的响应请求
- 高并发连接:理论上,Nginx 支持的并发连接上限取决于你的内存,10 万远未封顶。
- 低的内存消耗:在一般的情况下,10000 个非活跃的 HTTP Keep-Alive 连接在 Nginx 中仅消耗 2.5MB 的内存,这也是 Nginx 支持高并发连接的基础。
- 具有很高的可靠性:核心框架代码的优秀设计、模块设计的简单性,并且这些模块都非常的稳定。
- 高扩展性:Nginx 的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。
- 热部署:不停止服务的情况下修改配置文件,更换日志文件等功能。
- 自由的 BSD 许可协议:不只是允许用户免费使用 Nginx,也允许用户修改 Nginx 源码,还允许用户用于商业用途。
基本配置
Nginx 配置示例: cd /usr/local/nginx/conf/ ; tree一下
├── fastcgi.conf├── fastcgi_params├── koi-utf├── koi-win├── mime.types├── nginx.conf├── scgi_params├── uwsgi_params└── win-utf
除了 nginx.conf,其余配置文件,一般只需要使用默认提供即可。
nginx.conf 是主配置文件,默认配置去掉注释之后的内容如下图所示:
worker_process # 表示工作进程的数量,一般设置为cpu的核数worker_connections # 表示每个工作进程的最大连接数server{} # 块定义了虚拟主机 listen # 监听端口 server_name # 监听域名 location {} # 是用来为匹配的 URI 进行配置,URI 即语法中的“/uri/” location /{} # 匹配任何查询,因为所有请求都以 / 开头 root # 指定对应uri的资源查找路径,这里html为相对路径,完整路径为 # /usr/local/nginx/html/ index # 指定首页index文件的名称,可以配置多个,以空格分开。如有多 # 个,按配置顺序查找。
Nginx 监听了 80 端口、域名为 localhost、根路径为 html 文件夹(我的安装路径为 /usr/local/nginx/conf/,所以 /usr/local/nginx/conf/html)、默认 index 文件为 index.html,index.htm 服务器错误重定向到 50x.html 页面。
可以看到 /usr/local/nginx/conf/html/ 有以下文件:
/usr/local/nginx/conf/html$ ls50x.html index.html
这也是上面在浏览器中输入 ,能够显示欢迎页面的原因。实际上访问的是 /usr/local/nginx/conf/html/index.html 文件。
几个注意的点
一、 修改nginx配置文件的步骤
1. 修改conf配置文件2. 杀死占用端口 查看端口进程号: (1) ps -ef | grep nginx/端口号 (2) netstat -lnp | grep 端口号 (3) lsof -i : 端口号 # 不可用使用yum install lsof 安装 杀死占用进程: kill -9 pid3. 停止nginx服务 --> nginx -s stop4. 检查nginx配置状态 --> nginx -t5. 启动nginx服务 --> 执行/usr/local/nginx目录下 sbin/nginx -c指定路径下的conf文件6. 重启 --> nginx -s reload
二、windows下访问虚拟机nginx服务器
1. 桥接模式2. 按照windows的ipcofig 配置/etc/sysconfig/network-scripts/ifcfg-eth0的ip子网掩码网关 IPADDR= NETMASK= GATEWAY=3. 配置dns服务器 /etc/resolv.conf4. 重启网卡 service network restart5. 接下来两种方式 (1)临时关闭网络防火墙 service iptables stop 或者 设置开机启动不起动防火墙chkconfig iptables off (2)永久放行80端口 1. vim /etc/sysconfig/iptables 2. 修改该字段为: -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 3. 使配置生效 service iptables restart