openwrt相关配置(2):http服务器相关配置

我的openwrt上运行的http服务器是nginx,相比lighthttp,nginx更高
效些,占用资源感觉更少些。对于自带的uhttp服务,只能保留,不然路由
器的网络界面就没办法进入了。如上篇所说,修改了默认的uhttpd服务器
端口号,这样nginx作为主要的http服务器界面出来了。

以下是nginx的相关配置,这里我将文件分开存放了,这样比较直观,
而且,配置的nginx,只支持一个站点,毕竟,路由器的资源很有限。

       user nobody nogroup;
       worker_processes  1;
       #error_log  logs/error.log;
       #error_log  logs/error.log  notice;
       #error_log  logs/error.log  info;
       #pid        logs/nginx.pid;
       events {
       worker_connections  1024;
       use epoll; #使用epoll,更高效,我在实际使用过程中,感受不到,获取是自己从来不曾注意
       multi_accept on;
       }

       http {
       include       mime.types;
       include wordpress.conf; #wordpress的相关配置,会引用php的配置文件
       default_type  application/octet-stream;
       sendfile        on;
       keepalive_timeout  65; #修改超时时间
       }
       

其他的内容都删除或者注释掉了。下面是核心的wordpress配置相关的
内容了:

       server {
       listen 80;
       server_name localhost;
       #access_log /var/log/nginx/access.log combined; #日志记录,调试时很有用的
       #error_log /var/log/nginx/error.log warn; #日志记录,调试时很有用的
       #access_log on; #日志记录,调试时很有用的
       root /usb/web/blog; #web文件根目录在磁盘中的位置
	error_page 500 502 503 504 /50x.htm; #50x相关的错误页面的配置,出现
    #这种情况,基本上是php挂了(僵死了),或者php启动的时候端口被占用了。前一种情
    #况,没想出简单的解决办法。后一种情况,想过调用uhttp服务器页面来重新
    #启动,但最后用了一个cron任务每5分钟来进行检查,简单些。但在实际使用
    #中,没发现显示自定义的页面。没时间理会了,留个遗憾吧
	location = /50x.htm {
		root html;
	}
    #禁止访问.htaccess文件
	location ~* \.(htaccess)$ {
		deny  all;
	}
    #wordpress服务器配置
	location / {
		client_max_body_size    100m;
		#这个规则至关重要,如果没有会导致wordpress permlinks失败,而出现404错误
		try_files $uri $uri/ /index.php?$args;
		if (-f $request_filename/index.html){
			rewrite (.*) $1/index.html break;
		}
		if (-f $request_filename/index.php){
			rewrite (.*) $1/index.php;
		}
		if (!-f $request_filename){
			rewrite (.*) /index.php;
		}
	 
	}
    #php相关配置
	location ~ \.php$ {
		include fastcgi.conf;#所有php的fastcgi配置都放在这个文件里面
		include fastcgi_params;#所有php的fastcgi参数配置都放在这个文件里
        #面
	}
		#这个部分是把常用的较大的图片,样式表做一个浏览器缓存
	location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
		expires 24h;
		log_not_found off;
	}
}

       

上述并没有关于w3cache等相关插件的特殊配置,我曾经研究了下关于
这些插件的配置,总不能处于理想状态,干脆将这些插件之类的全都删除
了。从另外一个角度考虑下,对于我们的服务器,php脚本执行的越少则会
反映越快,这些插件说不定还会起到反作用,虽然一般情况下带来好的效
果。

以下是php-fastcgi的相关配置:

       fastcgi_index index.php;
fastcgi_pass 127.0.0.1:1026;  #php-fastcgi的端口注意修改。
fastcgi_intercept_errors        on;
fastcgi_ignore_client_abort     off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       

上述基本上都差不多,我对一些缓存的大小进行了调整,使之可以有效
在128MB的内存上运行,对于其他的内存大小,可进行相关的调整。

fastcgi_params使用默认的即可。

mysql服务器的配置基本上使用默认的即可,注意修改php.ini中关于
mysql服务器相关的配置,以及mysql配置中关于数据库存放位置的配置,
如果是完全新的网站,需要建立相关数据表,可参照网上的相关文档安装。

我对mysql的my.cnf做了下列的修改,不然mysql服务器占用太多内存了。

       key_buffer              = 16K
       max_allowed_packet      = 1M
       table_open_cache        = 4
       sort_buffer_size        = 64K
       read_buffer_size        = 256K
       read_rnd_buffer_size    = 256K
       net_buffer_length       = 2K
       thread_stack            = 128K
       thread_cache_size       = 8
       server-id               = 1
       

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据