moodle服务器优化,linux服务器优化同理apache nginx tomcat php php-fpm loadruner ab nginx 虚拟目录

moodle服务器优化,linux服务器优化同理apache nginx tomcat php php-fpm loadruner ab nginx 虚拟目录


一台服务器,主要有两个应用,一个是moodle,一个是tomcat 8080端口。

moodle在 html/www文件夹下,tomcat应用在tomcat安装目录下,分别访问均正常。其中由一个www目录下index.html文件作为链接跳转。

起初是安装在Apache下,并且用ajp做跳转到tomcat服务

              xxx.com/moodle/

index--xxx.com:8080/app

            xxx.com/app

第二和第三个是同样的,只是第三因为有时单位出口,8080被封,备用的出口

现在转到nginx上,第一个几乎不用做修改就可以,只是主要php文件的解析

第二个不用管,因为本来tomcat的应用就是由单独服务器处理的,其中静态html网页也交给tomcat处理

第三个花了很久完成

1)本来想写单独conf文件,但是servername只有一个,要么第三个能用要么第二个能用

2)想用负载均衡来做,因为需要加虚拟目录,实现起来磕磕绊绊,放弃了

3)location 区块处理,成功了,但是在一个隐含提交按钮上,总是指向127.0.0.1:8080,所以修改了director开关


总之这次的处理,长了不少见识,一个域名下做了这么多的不同应用

优化等以后再进行吧

nginx conf

# For more informaition on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/
#include /etc/nginx/conf.d/moodle.conf
user              nginx;
master_process on;
worker_processes  8;
#cpu number
error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


events {
#Linux 2.6
use epoll;
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
client_max_body_size       50m;
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;    
    # Load config files from the /etc/nginx/conf.d directory
    # The default server is in conf.d/default.conf
    include /etc/nginx/conf.d/*.conf;
    upstream tomcatoj { 
 
            server 127.0.0.1:8009 ; 
                       
        #jvm_route $cookie_JSESSIONID reverse; 
        } 
}


moodle conf


server {
 listen 80 default_server;                 #当输入ip时,会访问aaa.com
 server_name oi.sipxhsy.cn ;  #这个应该是最好的写法了         
rewrite ^/moodle/(.*\.php)(/)(.*)$ /moodle/$1?file=/$3 last;
rewrite ^/oj/(.*\.jsp)(/)(.*)$ /oj/$1?file=/$3 last;
 access_log /log/nginx/moodle/access.log;   #access_log属于ngx_http_log_module的设置, 缺省level为info
 error_log /log/nginx/moodle/error.log;     #error_log属于core module, 缺省的level是error 

 location / {
    root /html/www;
    index index.php index.html index.htm;     #由于是PHP类型的动态页面为主,所以把index.php放在前面效率会更高些
   # try_files $uri $uri/ /index.php?$args;   #普通php网站因为没有rewrite的话,这个不需要
 }

 error_page 404 /404.html;         #error_page errcode uri (也就是说出现了404错误,会请求/404.html)
 location = /404.html {            #这是一个典型的location
   root /html/www;
 }

 # redirect server error pages to the static page /50x.html
 #
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root /html/www;
 }

 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 # 这种写法可以防止把恶意程序伪装成.jpg之类的攻击,(其实有个更简单的方法,就是把php.ini中的cgi.fix_pathinfo=0,但有时候简单的修改cgi.fix_pathinfo会造成有的php脚本出错)

 location ~ \.php$ {
   root /html/www;
   fastcgi_split_path_info ^(.+?\.php)(/.*)$;
   
   if (!-f $document_root$fastcgi_script_name) {
     return 404;
   }
   #try_files $uri =404;         #这个try_files说明:对于.php文件,直接执行$uri, 如果找不到这个$uri,直接给出404错误,(和 location / 定义不同!),主要是为了防止 伪装成图片的攻击  (目前看,最安全的方式,是用上面那一句话,官方推荐的)

   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include fastcgi_params;
 }

location /nginx {
            stub_status on;
            access_log on;
        }
location ~ \.flv$ {
  flv;
  limit_rate  250k;
}
location ~ \.mp4$ {
  mp4;
  limit_rate  250k;
} 
location /app/ {
       alias /local/tomcat/webapps/app/;
             index   Index.jsp index.jsp Index.html Index.htm ;
#proxy_redirect          on;
proxy_set_header        oisy.cn            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_buffers           32 4k;
proxy_connect_timeout   30;
proxy_send_timeout      30;
proxy_read_timeout      30;
proxy_pass http://127.0.0.1:8080;
        }
location /ojj/{
# ajp_pass tomcat;
}
# deny access to .htaccess files, if Apache's document root
 # concurs with nginx's one


 location ~ /\.ht {
   deny all;
 }

}

参考:

Nginx配置性能优化

http://blog.csdn.net/xifeijian/article/details/20956605



你可能感兴趣的:(moodle服务器优化,linux服务器优化同理apache nginx tomcat php php-fpm loadruner ab nginx 虚拟目录)