如何在windows下部署extmail
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在windows下部署extmail相关的知识,希望对你有一定的参考价值。
1 整个 extmail邮件系统,是由多个软件构成的:软件名称 功能 (注意:没有列出反垃圾邮件软件与杀毒软件)
ExtMan Web帐户管理后台(含mailgraph_ext 图形日志分析)
ExtMail WebMail(perl 程序)
Apache Web服务器(MUA 通过浏览器收发邮件)
Postfix SMTP服务器,邮件传输代理(MTA)
Maildrop 邮件投递代理(MDA)
Courier-imap IMAP和POP3 服务器
Cyrus-sasl2 标准的SASL实现库,可以支持Courier Cyrus SMTP认证库
Courier-authlib 负责courier-imap,maildrop的认证 Courier 数据认证库(mysql)
MySQL 数据库,储存虚拟(域|用户|别名)等信息.
2 确定postfix 支持的smtp认证方式,与支持的查询表(必须包含mysql格式)
smtp 认证方式
postconf -a
cyrus (sasl库)
dovecot
支持的查询表
postconf -m
btree
cidr
environ
hash
ldap
mysql (包含mysql)
nis
pcre
proxy
regexp
static
tcp
unix
注意: redhat/centos 自带的postfix不支持mysql方式的查询表,所以你可能需要以源码的方式重新安装postfix 并且开启mysql支持!!!
3 extmail 发信,收信,(web登陆)认证逻辑图
+++++++++++++++++++++++++++++++++++++++++++++++++
+ smtp/25 + po3/110 + http/80 +
+ postfix + courier-imap + apache +
+++++++++++++++++++++++++++++++++++++++++++++++++
+ cyrus-sasl2 +
+++++++++++++++++++++++++++++++++++++++++++++++++
+ courier-authlib +
+++++++++++++++++++++++++++++++++++++++++++++++++
+ mysql +
+++++++++++++++++++++++++++++++++++++++++++++++++
3.1 smtp认证流程
smtp/25
postfix
| <-- smtp 认证
cyrus-sasl2
| <-- smtpd.conf 配置文档(设置了authdaemond的Unix套接字的路径)
courier-authlib
| <-- authmysqlrc 配置文档(设置了mysql相关信息)
mysql
| -- I:储存虚拟(域|用户|别名)等信息.
3.2 smtp认证 相关的配置文档
postfix
10.0.100.88 [~]$ rpm -qf /usr/lib64/sasl2/smtpd.conf
postfix-2.6.2-5hzq
10.0.100.88 [~]$ cat /usr/lib64/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/spool/authdaemon/socket
---------------------------------------------------------------
pwcheck_method SASL 库 auxprop(默认值)
(描述:空格分隔开的用来效验密码的机制列表,值可能是 sasl_checkpass,auxprop,
saslauthd,pwcheck,authdaemond【如果编译时添加了 --with-authdaemond 】
mech_list SASL 库 使用所有有效插件
(描述:空格分隔开的允许使用的机制的列表,比如:'plain otp'。用来在安装的插件
中限制出一个可用机制的子集。)
authdaemond_path SASL 库 /dev/null(默认值)
(描述:Courier-authlib 的 authdaemond 的 Unix 套接字的路径。仅当 pwcheck_method 设
置为 authdaemond 时可用。)
-------------------------------------------------------------------
courier-authlib
10.0.100.88 [~]$ rpm -qf /var/spool/authdaemon/socket
courier-authlib-0.62.4-2hzq
10.0.100.88 [~]$ cat /etc/authlib/authmysqlrc
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD xmall.com
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_PORT 3306
...................................
4 了解 postfix 的查询表
postfix 有许多的重要参数(main.cf)都需要能够查询其对应关系,将所有的对应关系保存在另外一个文件 "查询表"
查询表格式:
查询表的原始数据来自简单的文本文件,文件的每一行定义一组 "key_value" 对应关系,key 与 value
以空白隔开,例如:
cat /etc/postfix/local_in_senders
tech@xmall.com local_in_only
it@xmall.com local_in_only
postmap命令创建查询表的数据库文件
postmap /etc/postfix/local_in_senders
file /etc/postfix/local_in_senders.db
/etc/postfix/local_in_senders.db: Berkeley DB (Hash, version 8, native byte-order)
postfix 默认的查询表数据格式为hash
postconf | grep 'default_database_type'
default_database_type = hash
当将查询表赋值给相关参数时,则必须指出查询表的数据库类型,例如:
postconf | grep 'hash:/'
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases, nis:mail.aliases
查询表的特例-别名文件
由于别名文件的格式不同于postfix 其它的postfix 查询表,所以不能使用postmap 创建别名的数据库文件,而应该使用postalias/newalias;
别名文件位置:alias_maps = hash:/etc/aliases, nis:mail.aliases
别名文件格式:
grep -vE '(^$|^#)' /etc/aliases | head -n 3
mailer-daemon: postmaster
postmaster: root
bin: root
daemon: root
5 linux系统 用 32位 还是 64位?
如果邮件比较少,邮件操作系统压力不大的话,32位或者64位都可以,只不过部署extmail(源码)时要区分一下,比如:
i386
/usr/lib/sasl2/smtpd.conf
/usr/lib/mysql/
x86_64
/usr/lib64/sasl2/smtpd.conf
/usr/lib64/mysql/
6 linux系统硬盘分区
建议 /var /home 单独分区,原因有两个
1 因为extman 与 extmail都是以 /home/domains作为基础目录
2 /var/log/maillog 邮件日志; /var/spool/postfix 邮件队列
10.0.100.88 [xmall.com]$ pwd
/home/domains/xmall.com
10.0.100.88 [xmall.com]$ du -sh *
120K zm1
436M zm2
10.0.100.88 [xmall.com]$ ll
total 8
drwx------ 3 vuser vgroup 4096 Dec 19 16:00 zm1
drwx------ 3 vuser vgroup 4096 Dec 19 16:00 zm2
7 安装依赖rpm包 (这里使用了本地cdrom源,如果你不是本地yum源,请直接yum install 后边的rpm包)
yum --disablerepo=\\* --enablerepo=c5-media install httpd php php-mysql mysql mysql-server mysql-devel openssl-devel perl-DBD-MySQL tcl tcl-devel libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-devel expect 参考技术A extmail 是centos下的
nginx如何快乐的在windows下部署
nginx在windows下部署
nginx大家应该不陌生,一般我们首先会想到反向代理、控制反转、web缓存等等,其实呢,他除了干这些事,好像就是做这些事的,小巧灵活作为部署web的服务器最适合不过了。不过大多数java爱好者们习惯用Linux系统部署,所以很多人都用Linux系统来安装使用nginx,我是一个.net程序员,虽然也用java,但是习惯性的不喜欢用Linux系统。所以每次遇到跨平台的项目或者前后端分离的项目部署的时候,我还是会选择windows的系统,就连服务器我也是用的百度云安装的windows server 版本,今天我和大家看一下windows系统如何安装部署Nginx。
1.下载Nginx
http://nginx.org/en/download.html
设置Nginx为Windows服务
我们可以借助"Windows Service Wrapper"小工具来辅助实现相关功能。
http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/1.18/winsw-1.18-bin.exe
创建配置文件
下载该工具后,将其放在 Nginx安装目录下,并重命名为nginx-service.exe,创建配置文件nginx-service.xml(名字要和工具名一样)。
创建nginx-service.exe.config(为支持NET 4.0 runtime,默认只支持NET 2.0 runtime),
nginx-service.xml 内容如下:
<service>
<id>nginx</id>
<name>Nginx Service</name>
<description>High Performance Nginx Service</description>
<logpath>C:\nginx\logs</logpath>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
<executable>C:\nginx\nginx.exe</executable>
<startarguments>-p C:\nginx</startarguments>
<stopexecutable>C:\nginx\nginx.exe</stopexecutable>
<stoparguments>-p C:\nginx -s stop</stoparguments>
</service>
nginx-service.exe.config 内容如下:
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
启动服务
进入cmd控制台中运行如下命令安装windows服务,之后就可以在Windows服务面板中启动服务了
C:\nginx\nginx-service.exe install
配置nginx.conf
下面我们来配置Nginx主要的文件,重点就是配置这个文件,我们才能快乐的玩转Nginx。在nginx文件夹下的conf文件夹中的nginx.conf就是它的配置文件了。打开nginx.conf文件。在 http{} 中。有如下代码。
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:5000;
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
listen 表示ngnix监听的端口号,默认是80;
我是使用的项目flask是运行在本地的5000端口上,域名例如www.baidu.com。配置是
listen 80;
server_name www.baidu.com;
location / {
proxy_pass http://127.0.0.1:5000
root html;
index index.html index.htm;
}
首先将项目运行起来。这时候可以在5000端口看到它。但是访问网址默认是80端口。这里配置之后。访问网址会转到5000端口。
项目部署就完成了,这里只用了nginx最基本的功能反向代理。
总结
今天因为你的点赞,让我元气满满
以上是关于如何在windows下部署extmail的主要内容,如果未能解决你的问题,请参考以下文章
如何在Win10上激活Windows Sandbox沙盒功能
virtualenv和conda的区别及windows 10上的部署
centos7.2下搭建postfix++dovecot+courier-authlib+extmail邮件收发系统