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 公网ip:202.106.0.1一台公网客户ip:202.106.0.20
需求:
1:公网客户可以访问公司主页www.sw.com和bbs.sw.com
2:内网管理机可以用密码通过ip或者端口登录网站后台m.sw.com
实现步骤:
1:服务器上安装nginx源码包程序,设置为开机启动,备份主配置文件
# useradd-M -s /sbin/nologin nginx //添加系统用户nginx,无家目录和禁止登录
#yum -y install gcc gcc-c++ make pcrc-devel openssl-devel //安装编译环境开发包
#mkdir /nginx //创建存放文件夹
# ./configure --prefix=/nginx \ //转换源码,指定安装目录
>--user=nginx --group=nginx //指定进程属主,属组
>--with-http_stub_status_module --with-http_ssl_module; //加载查看状态模块,ssl模块
# make&& make install //编译安装
# vim /etc/rc.local //添加到开机启动脚本
/nginx/sbin/nginx # cp -p /nginx/conf/{nginx.conf,nginx.conf.bak}//备份主配置文件
2:配置主配置文件,重启服务
# vim /nginx/conf/nginx.conf
...
3 worker_processes1; //进程个数,建议和cpu核数相同
...
12 events {
13 worker_connections1024; //每进程并发连接数
14 }
...
17 http {
...
118 server {
119 listen 202.106.0.1:80; //监听公网80端口
120 server_namewww.sw.com; //虚拟主机www.sw.com
121 location / {
122 root /nginx/html/www; //之前先手动创建首页存放目录/nginx/html/www
123 indexindex.html index.htm;
124 }
125 }
126 server {
127 listen 202.106.0.1:80;
128 server_namebbs.sw.com; //虚拟主机bbs.sw.com
129 location / {
130 root /nginx/html//bbs; //之前先手动创建首页存放目录/nginx/html/bbs
131 indexindex.html index.htm;
132 }
133 }
134 server {
135 listen 192.168.1.11:8080; //监听内网192.168.1.11:8080
136 server_namem.sw.com; //后台虚拟主机m.sw.com
137 location / {
138 root /nginx/html//m; //之前先手动创建首页存放目录/nginx/html/m
139 indexindex.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 }
#/nginx/sbin/nginx -s stop //停止服务
#/nginx/sbin/nginx //启动服务
#htpasswd -c /nginx/user.pwsw //创建用户名密码文件(如此命令没有就安装httpd包)
附:平滑升级nginx
1:转换源码,编译
# ./configure --prefix=/nginx --user=nginx --group=nginx \
>--with-http_stub_status_module --with-http_ssl_module; //转换源码,要和低版本参数相同
# make
2:替换低版本启动脚本
#mv /nginx/sbin/{nginx,nginx8.55}
#cp -p objs/nginx /nginx/sbin
3:平滑升级
# make upgrade //从容结束旧版本进程,替换为新版本
页:
[1]