技术开发 频道

OpenBSD.Nginx.MySQL.PHP环境搭建手册(v2)

  四、Nginx配置

  Ⅰ、Nginx配置文件的修改

  修改nginx的默认配置文件:

  vi /etc/nginx/nginx.conf

  按下面的内容修改Nginx的配置文件。兰色表示需要手动修改的内容,红色表示增加的内容:

  #user nobody;

  # 指定子进程数,酌情修改

  worker_processes 2;

  #error_log logs/error.log;

  #error_log logs/error.log notice;

  #error_log logs/error.log info;

  #pid logs/nginx.pid;

  # 最多可打开文件数

  worker_rlimit_nofile 8196;

  events {

  # 最大并发数

  worker_connections 1024;

  }

  http {

  include mime.types;

  default_type application/octet-stream;

  # 关掉错误日志

  error_log /dev/null crit;

  # 如果需要错误日志,就用下面这行替换上面这行

  #error_log /var/log/nginx/error.log notice;

  # 定义日志格式,对日志使用缓存,避免频繁的磁盘I/O操作

  access_log /var/log/nginx/access.log combined buffer=1m;

  sendfile on;

  tcp_nopush on;

  tcp_nodelay on;

  keepalive_timeout 10;

  # 对静态文件和可压缩文件启用压缩,以节约网络带宽,提高访问速度

  gzip on;

  gzip_min_length 1k;

  gzip_buffers 4 8k;

  gzip_http_version 1.1;

  gzip_comp_level 3;

  gzip_types text/html text/css text/xml text/plain application/x-javascript application/xml application/pdf application/x-perl application/x-tcl application/msword application/rtf application/vnd.ms-excel application/vnd.ms-powerpoint application/vnd.wap.xhtml+xml image/x-ms-bmp;

  gzip_disable "MSIE [1-6] \.";

  gzip_vary on;

  # 定义输出缓存大小

  output_buffers 4 32k;

  # 最大允许可上传文件大小

  client_max_body_size 20m;

  # 定义一个叫“myzone”的记录区,总容量为 10M

  # 和下面的limit_conn一起限制单个IP的并发连接数为10

  limit_zone myzone $binary_remote_addr 10m;

  server {

  listen 80;

  server_name localhost;

  location / {

  root /var/nginx/html;

  index index.php index.html index.htm;

  limit_conn myzone 10;

  }

  error_page 500 502 503 504 /50x.html;

  location = /50x.html {

  root /var/nginx/html;

  }

  location ~ \.php$ {

  root html;

  fastcgi_pass 127.0.0.1:9000;

  fastcgi_index index.php;

  fastcgi_param SCRIPT_FILENAME /var/nginx/html$fastcgi_script_name;

  include fastcgi_params;

  }

  # 在浏览器本地暂存图片和静态文件,不记录日志,以节约机器资源

  location ~* \.(gif|png|jpg|jpeg|bmp|css|js|swf)$

  {

  root /var/nginx/html;

  access_log off;

  expires max;

  }

  # 在浏览器中输入http://xxx.xxx.xxx/status可以看到Nginx的运行信息

  # 需要密码认证,不记录日志,限制IP访问

  location ~ /status

  {

  auth_basic "O.N.M.P.";

  auth_basic_user_file password;

  stub_status on;

  access_log off;

  allow 192.168.0.0/24;

  deny all;

  }

  }

  }

  其他的部分请酌情修改。

  运行下面的命令生成查看Nginx运行状态的密码文件:

  htpasswd -c /etc/nginx/password webadmin

  按提示输入两遍密码即可。

  在查看status的时候,输入用户名webadmin(见上面这行)和密码就能够看到Nginx的运行数据了。

  Nginx能够流行和它的高负载能力是分不开的,在追求性能表现的场合,推荐使用Nginx+PHP-fastcgi的组合以获得强健的性能表现。而对于 那些重视安全性的场合来说,可能OpenBSD内核集成的Apache更合适。OpenBSD下搭建Apache、MySQL、PHP环境的详细内容请参见偶的另篇博文,地址在下面:

  http://blog.chinaunix.net/u2/81136/showart_1860332.html

  当然,你也可以利用Nginx内置的负载均衡功能,在前端分配访问流量,后端由Apache来运行PHP环境。Nginx负载均衡的配置可以去Nginx的主页参看相关内容,地址:http://wiki.nginx.org/Main。

  下面为一个Nginx负载均衡的示例:

  http {

  upstream myproject {

  ip_hash;

  server 192.168.1.1:80;

  server 192.168.1.2:80;

  server 192.168.1.3:80;

  server 192.168.1.4:80;

  }

  server {

  listen 80;

  server_name www.domain.com;

  location / {

  proxy_pass http://myproject;

  }

  }

  }

  网络拓扑示意图如下:

0
相关文章