nginx网站基本配置过程

Apache优点:

Apache的兼容性和稳定性都是非常强

Apache 的模块比 Nginx/Lighttpd丰富

Apache在处理动态请求比Nginx/Lighttpd更有优势

缺点:

属于重量级web服务器(重量级主要是在软件包的大小上比较大,软件的耦合度大)

在速度、性能不及其他轻量级web服务器,并且消费内存较高。使用传统的select模型,比较稳定的Prefork模式为多进程模式,需要经常派生子进程。所以消耗的cpu等服务器资源比较大。

Nginx优点:

轻量级,比apache 占用更少的内存及资源

抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型,在高并发下nginx 能保持低资源低消耗高性能

高度模块化的设计,编写模块相对简单

有Lighttpd的性能,且更稳定,没有其内存泄露问题;

处理静态文件,索引文件以及自动索引,打开文件描述符缓冲。

缺点:

nginx处理动态请求是鸡肋,不如Apache;

建议方案:

Apache 后台服务器(主要处理php及一些动态请求);Nginx  前端服务器(高并发请求、静态资源、负载均衡、反向代理和前端Cache等)。


环境:

一台私网管理机ip:192.168.1.11  一台服务器私网ip:192.168.1.11 公网ip202.106.0.1  一台公网客户ip:202.106.0.20

需求:

1:公网客户可以访问公司主页www.sw.combbs.sw.com

2:内网管理机可以用密码通过ip或者端口登录网站后台m.sw.com

实现步骤:

1:服务器上安装nginx源码包程序,设置为开机启动,备份主配置文件

[root@1.11 ~]# useradd  -M -s /sbin/nologin nginx                //添加系统用户nginx,无家目录和禁止登录

[root@1.11 ~]#yum -y install gcc gcc-c++ make pcrc-devel openssl-devel   //安装编译环境开发包

[root@1.11 ~]#mkdir /nginx                                                    //创建存放文件夹

[root@1.11 nginx-0.8.55]# ./configure --prefix=/nginx \        //转换源码,指定安装目录

>--user=nginx --group=nginx                                                  //指定进程属主,属组

>--with-http_stub_status_module --with-http_ssl_module;    //加载查看状态模块,ssl模块

[root@1.11 nginx-0.8.55]# make  && make install                //编译安装

[root@1.11 ~]# vim /etc/rc.local                  //添加到开机启动脚本

/nginx/sbin/nginx


[root@1.11 ~]# cp -p /nginx/conf/{nginx.conf,nginx.conf.bak}  //备份主配置文件

2:配置主配置文件,重启服务  

[root@1.11 ~]# vim /nginx/conf/nginx.conf

...  
3 worker_processes  1;                    //进程个数,建议和cpu核数相同
...
12 events {
13     worker_connections  1024;    //每进程并发连接数
14 }
...
17 http {
...
118     server {
119         listen      202.106.0.1:80;                           //监听公网80端口
120         server_name  www.sw.com;                          //虚拟主机www.sw.com
121         location / {
122            root   /nginx/html/www;       //之前先手动创建首页存放目录/nginx/html/www
123            index  index.html index.htm;
124       }
125     } 
126     server {
127         listen      202.106.0.1:80;
128         server_name  bbs.sw.com;                          //虚拟主机bbs.sw.com
129         location / { 
130             root   /nginx/html//bbs;     //之前先手动创建首页存放目录/nginx/html/bbs
131            index  index.html index.htm;
132       }
133     }
134     server {
135         listen      192.168.1.11:8080;        //监听内网192.168.1.11:8080
136         server_name  m.sw.com;                     //后台虚拟主机m.sw.com
137         location / {
138             root   /nginx/html//m;     //之前先手动创建首页存放目录/nginx/html/m
139            index  index.html index.htm;
140            allow 192.168.1.111;              //只允许内网192.168.1.111访问网页后台
141            deny all;                                     //拒绝其他所有
142            auth_basic "请输入用户名密码";                //弹出用户认证时的提示信息
143            auth_basic_user_file /nginx/user.pw;           //指定用户认证文件
144       }
145     }
146 }


[root@1.11 ~]#/nginx/sbin/nginx -s stop                          //停止服务

[root@1.11 ~]#/nginx/sbin/nginx                                     //启动服务

[root@1.11 ~]#htpasswd -c /nginx/user.pw  sw               //创建用户名密码文件(如此命令没有就安装httpd包) 

 

 

附:平滑升级nginx

1:转换源码,编译

[root@1.11 nginx-1.0.5]# ./configure --prefix=/nginx --user=nginx --group=nginx \                                                 

>--with-http_stub_status_module --with-http_ssl_module;             //转换源码,要和低版本参数相同

[root@1.11 nginx-1.0.5]# make

2:替换低版本启动脚本

[root@1.11 nginx-1.0.5]#mv /nginx/sbin/{nginx,nginx8.55}

[root@1.11 nginx-1.0.5]#cp -p objs/nginx /nginx/sbin

3:平滑升级

[root@1.11 nginx-1.0.5]# make upgrade                                       //从容结束旧版本进程,替换为新版本


本文出自 “sleepcat” 博客,请务必保留此出处http://sw5720.blog.51cto.com/8812314/1440077

nginx网站基本配置过程

上一篇:golang html/template


下一篇:WebKit技术内幕