标签 DirectAdmin 下的文章

Directadmin使用起来非常方便,Nginx的一些规则在自定义Httpd配置就可以直接进行设置。
一般习惯在CUSTOM3进行设置规则,可直接写在server里头。网上的nginx的一些规则适合手动配置Nginx,但DA设置后会直接写http与https在两个配置里,这时候就需要加if进行判断。

if ($server_port = "80") {
   rewrite ^/(.*)$ https://$server_name/$1 permanent;
}

我这里直接判断服务器端口为80就强制转向https,如果不加判断会出现链接重置过多而500错误。加一个判断就可轻松解决了。

阿里云现在可以自定义内网IP和路由,对外IP不是直接绑定的外网IP。
但安装Directadmin需要外网授权IP,所以必须增加一个虚拟网卡才能够进行安装。

比如设置阿里云内网为IP是172.18.13.88, 外网分配IP是120.24.100.100,环境为CentOS6.8

首先设置一张虚拟网卡:

/sbin/ifconfig eth0:0 120.24.100.100 netmask 255.255.255.0 up
echo "/sbin/ifconfig eth0:0 120.24.100.100 netmask 255.255.255.0 up" >> /etc/rc.local

设置NAT转发:

iptables -t nat -A POSTROUTING -s 120.24.100.100 -j SNAT --to-source=172.18.13.88

再测试一下是否能够正确curl DA官网

curl --interface eth0:0 -v https://www.directadmin.com

- 阅读剩余部分 -

DirectAdmin拥有一键安装、升级的脚本,简单的使用几条命令就可以让Directadmin自动升级相关的组件。

一、手动指定
若需要Directadmin自带的MySql的版本从5.1升级到5.5

# vim /usr/local/directadmin/custombuild/options.conf

SSH执行以上命令,编辑options.conf,将“mysql=5.1”更改为“mysql=5.5”,保存即可。

然后执行以下命令,系统会自动升级或降级(如果设置了旧版本则是降级)。

# /usr/local/directadmin/custombuild/build mysql

其它组件也是一样的格式,替换为您要升级或降级的组件即可。

二、自动升级
1、检查最新软件版本

# /usr/local/directadmin/custombuild/build versions

2、若有新版,获得最新安装包

# /usr/local/directadmin/custombuild/build update

3、获取完毕,再执行升级

# /usr/local/directadmin/custombuild/build update_versions

SSH执行以上命令即可。

Directadmin服务器全球有很多服务器,但国内连接都速度太慢了。Directadmin还好有HK的服务器。
目前12号服务器为香港服务器,可以定义从12号服务器进行下载更新。

cd /usr/local/directadmin/custombuild
./build set downloadserver files12.directadmin.com

也可以把12改为你要的下载服务器。查看全部服务器地址

cat /usr/local/directadmin/custombuild/servers.txt

[root@server ~]#nginx -V   //查看Nginx安装信息以及目录
nginx version: nginx/1.8.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/usr --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --http-log-path=/var/log/nginx/access_log --error-log-path=/var/log/nginx/error_log --with-ipv6 --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_dav_module --with-cc-opt=''-D FD_SETSIZE=32768''

下载nginx-http-concat模块以及nginx最新版本

[root@server ~]# git clone git://github.com/alibaba/nginx-http-concat.git  //下载nginx-http-concat模块
[root@server ~]# mv nginx–http–concat/ /usr/local/src/nginx-http-concat   //将模块移动到指定目录
[root@server ~]# wget http://nginx.org/download/nginx-1.9.11.tar.gz  //下载最新nginx版本
[root@server ~]# tar zxvf nginx-1.9.11.tar.gz  //解压
[root@server ~]# cd nginx-1.9.11   //进入nginx最新目录

这里需要修改一下nginx-http-concat的ngx_http_concat_module.c文件,因为nginx最新的js类别已经修改成application/javascript。所以需要将ngx_http_concat_module.c里的application/x-javascript修改成application/javascript。不然js无法合并,并会提示400错误。

[root@server nginx-1.9.11]# vi /usr/local/src/nginx-http-concat/ngx_http_concat_module.c
找到
ngx_string("application/x-javascript")
将其修改为
ngx_string("application/javascript")
:wq  //保存

现在可以进行编译了,将nginx-http-concat一起与nginx编译。

[root@server nginx-1.9.11]# ./configure  --user=nginx --group=nginx --prefix=/usr --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --http-log-path=/var/log/nginx/access_log --error-log-path=/var/log/nginx/error_log --with-ipv6 --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_dav_module --with-cc-opt="-D FD_SETSIZE=32768" --add-module=/usr/local/src/nginx-http-concat
make

make以后进入objs

[root@server nginx-1.9.11]# cd ./objs
[root@server objs]# mv /usr/sbin/nginx /usr/sbin/nginx.old   //移动1.8版本nginx为nginx.old
[root@server objs]# cp nginx /usr/sbin/nginx  //将刚编译的1.9.11的nginx复制原地址。

这个时候基本就升级完成了。

[root@server objs]# nginx -V
nginx version: nginx/1.9.11
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr --user=nginx --group=nginx --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --http-log-path=/var/log/nginx/access_log --error-log-path=/var/log/nginx/error_log --with-ipv6 --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_dav_module --with-cc-opt='-D FD_SETSIZE=32768' --add-module=/usr/local/src/nginx-http-concat

这时候看到nginx版本升级到指定版本,并且看到nginx-http-concat已经成功编译进去。
但还没有完成,我们还需要在nginx.conf里面进行配置。
举例:

server
{
        listen 120.0.0.1:80;
        server_name ouyang.wang www.ouyang.wang ;
        access_log /var/log/nginx/domains/ouyang.wang.log;
        access_log /var/log/nginx/domains/ouyang.wang.bytes bytes;
        error_log /var/log/nginx/domains/ouyang.wang.error.log;
        root /home/domains/ouyang.wang/public_html;
        index index.htm index.html index.php;
        include /usr/local/directadmin/data/users/news/nginx_php.conf;
        location / {
        concat on;
        concat_max_files 20;
        concat_unique off;  //允许不同类型文件合并
        }
        include /etc/nginx/webapps.conf;
}

只需要将下列加入server里即可。

        location / {
        concat on;
        concat_max_files 20;
        concat_unique off; 
        }

参数说明:

# nginx_concat_module 开关
concat on; 

# 最大合并文件数
# concat_max_files 10;

# 允许不同类型文件合并
# concat_unique off;

# 允许合并的文件类型,多个以逗号分隔。如:application/javascript, text/css
# concat_types application/javascript, text/css;

配置保存完成后,启动nginx即可。

 systemctl reload nginx.service