DevOps

手动删除qmail的maillog后,就再也看不到有内容的maillog了,怎么办?

如果你手动删除了qmail的maillog, qmail就再也不会自动生成maillog, 你后续的smtp行为都不会再有记录。 即使你手动touch maillog文件,后续的smtp行为也不会在你新建的maillog文件中产生记录。 我今天就是这样手删了一下,结果搞了很久很久都没搞定,直到我开始想: “maillog怎么产生的? 是由splogger写给syslog的;按照‘重启万能论’,是不是重启一下相关服务即可?” 重启 qmail(内置splogger)不起作用后,我 重启syslog服务,就好了。 所以,要解决这个问题,只需: 引用 #service rsyslog restart

Ubuntu下启动、停止nginx

nginx在ubuntu下会被安装成service, 所以相应的起止办法是: $sudo service nginx start $sudo service nginx stop 另外,配置文件在 $sudo vi /etc/nginx/nginx.conf

nginx 后接jett/tomcat

不需要改jetty/tomcat的配置,只需要修改nginx.conf 引用 http{                server{                 listen 80;                  server_name www.xxx.com www2.xxx.com;                 location / {                     proxy_pass              http://localhost:8080;                     proxy_set_header        X-Real-IP $remote_addr;                     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;                     proxy_set_header        Host $http_host;                 }         } } 另外,经过以上设置后,在servlet里拿request.getServerName()和request.getServerPort()会跟浏览器里输入的一致。

apache httpd的优点

  1. 每个连接独占一个进程,进程之间比较独立; 一个进程的崩溃不会影响其他进程。   2. apache提供了大量的模块   3. 如果并发数在150以内,apache够用了 (郭欣)

给tomcat开放远程debug

1. startup.sh 对最后一行的 exec "$PRGDIR"/"$EXECUTABLE" start "$@", 在start之前插入 jpda 2. catalina.sh 在开头写入: JPDA_ADDRESS=6767 JPDA_SUSPEND=n

ubuntu下安装apache httpd + mod_proxy

1.安装httpd sudo apt-get install apache2 2.安装mod_proxy cd /etc/apache2/mods-available sudo a2enmod proxy_http 3.配置一下mod_proxy     修改/etc/apache2/sites-available/default        加入     ProxyPass / http://localhost:8781/     ProxyPassReverse / http://localhost:8781/     修改/etc/apache2/mods-enabled/proxy.conf     把"deny from all" 改成 "allow from all"  #如果不改这个,浏览器就会说“You don’t have permission to access…”

用mod_proxy连接一个Apache与两个Tomcat

[img][/img]这类文章在网上太多了,但我看到的都是乱糟糟的,要么没重点,要么只讲配置不讲道理。干脆我自己写一个 1.概述 这种设计可以称作“反向代理”,即把web server当作app server的代理. Apache的模块mod_proxy就是为此而生的 Proxy就是我们要配的第一个东西 proxy会导致一个问题。tomcat的host/port与apache的hostp/port肯定有所不同。那在tomcat中的webapp下执行servlet.getServerName()和getServerPort()时,拿到的主机名和端口是什么? 如果不作配置的话,就是tomcat自己的host/port;这显然不是我们想要的。我们要的是用户请求的host/port,即apache的host/port.  我们要配置的第二步就是来解决这个问题。 最后一个问题跟session stickiness相关. 由于我们有两个tomcat,怎么让同一个session下的所有请求都发到同一个tomcat上呢? Apache通过mod_proxy_balancer解决这个问题。这是我们要配的第三个东西。 下面就一个一个来配: 2.配置proxy #apache的httpd-vhosts.conf <VirtualHost *:80> … #先只配一个tomcat ProxyPass /tomcat/ http://tomcat:8080/ ProxyPassReverse /tomcat/ http://tomcat:8080/ #上面两句话会把 http://apache/tomcat下的所有请求转发给 http://tomcat:8080 … </VirtualHost> 3.解决proxy引发的request.getServerName()问题 <!–Tomcat的server.xml–> <Connector port=”8080″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ proxyName=”apache” proxyPort=”80″ /> <!–这样一来,拿到的getServerName()和getServerPort()就是用户真正请求的东西–> 4.1 – 把两个tomcat做成一个集群 <VirtualHost *:80> … #两个tomcat并作一个集群 <Proxy balancer://tomcat-cluster> BalancerMember http://tomcat:3535 BalancerMember http://tomcat:3636 </Proxy> #把proxy指向这个集群 …

用mod_proxy连接一个Apache与两个Tomcat Read More »

Apache的Virtual Host分两种

摘自 Apache Cookbook There are two primary forms of virtual hosts: IP-based virtual hosts, where each virtual host has its own unique IP address; and name-based virtual hosts, where more than one virtual host runs on the same IP address but with different names.