Support

Forums

Contact Me

Posts Tagged 'webserver'

Web server

Web server can refer to either the hardware (the computer) or the software (the computer application) that helps to deliver Web content that can be accessed through the Internet. [http://en.wikipedia.org/wiki/Web_server]

Apache Maven Cargo deploy with Tomcat 7

apache_maven

cargo-banner-left

Following the post about Deploy to Tomcat 6 using Maven, here is a ready to use example with the main differences explained in the table below

  Tomcat 7 Tomcat 6
containerId <containerId>tomcat7x</containerId> <containerId>tomcat6x</containerId>
Url of Tomcat manager <cargo.remote.uri> <cargo.tomcat.manager.url>
example http://host..com/manager/text/ http://host..com/manager/
tomcat-users.xml

<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script"/>
</tomcat-users>

<tomcat-users>
  <role rolename="manager"/>
  <user username="admin" password="admin" roles="manager"/>
</tomcat-users>

And finally a snippet of an Apache Maven pom.xml ready to use in a profile, so you can reuse this profile like a method call

<profile>
 <id>deployTomcat</id>
<activation>
  <activeByDefault>false</activeByDefault>
</activation>
<build>
 <plugins>
    <plugin>
     <groupId>org.codehaus.cargo</groupId>
     <artifactId>cargo-maven2-plugin</artifactId>
     <version>1.1.0</version>
    <configuration>
     <wait>true</wait>
     <container>
      <containerId>tomcat7x</containerId>
      <type>remote</type>
     </container>
     <configuration>
      <type>runtime</type>
      <properties>
       <cargo.remote.uri>
         ${tomcat.url}
       </cargo.remote.uri>
       <cargo.remote.username>
          ${tomcat.user}     
       </cargo.remote.username>
        <cargo.remote.password>
          ${tomcat.pwd}
        </cargo.remote.password>
      </properties>
      </configuration>
      <deployer>
       <type>remote</type>
       <deployables>
       <deployable>
        <groupId>${deploy.groupid}</groupId>
        <artifactId>${deploy.artifactid}</artifactId>
        <type>war</type>
        <properties>
         <context>${deploy.context}</context>
        </properties>
       </deployable>
      </deployables>
     </deployer>
    </configuration>
    <executions>
     <execution>
      <id>verify-deploy</id>
      <phase>pre-integration-test</phase>
      <goals>
       <goal>deployer-undeploy</goal>
       <goal>deployer-deploy</goal>
      </goals>
     </execution>
    </executions>
    </plugin>
 </plugins>
</build>
</profile>

Place as many profiles as you have machine to deploy in settings.xml and declare some variables as properties, as shown below:

<profile>
 <id>serverA</id>
 <activation>
    <activeByDefault>false</activeByDefault>
 </activation>
 <properties>
    <tomcat.url>http://host.com/manager/text</tomcat.url>
    <tomcat.user>admin</tomcat.user>
    <tomcat.pwd>admin</tomcat.pwd>
    <!-- these properties must be defined
       as system property or -D -->
    <!-- - deployable.artifactid:
         artifactId of web application to be deployed -->
    <!-- - deployable.context: web context name -->
 </properties>
</profile>

So you can run, and traget multiple host by just exchanging the name of the profile serverA to something else.

mvn integration-test –PdeployTomcat,serverA
   –Ddeployable.artifactid=demo
   -Ddeploy.groupid=com.mycompany
   –Ddeployable.context=showcase

Best nginx configuration for Joomla

Nginx-logo

nginx (pronounced “engine-x”) is an open source Web server and a reverse proxy server for HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high concurrency, performance and low memory usage. It is licensed under a BSD-like license and it runs on Unix, Linux, BSD variants, Mac OS X, Solaris, AIX and Microsoft Windows [WikiPedia]

These are my reusable settings for any Joomla hosting, these are the most secure, and fastest settings to the best of my knowledge.

Configuration files are provided using Gist  and are CONSTANTLY updated for added security and speed. Gist is a simple way to share snippets and pastes with others. All gists are git repositories, so they are automatically versioned, forkable and usable as a git repository. I recommend you to starred them to stay up to date.

Read more: Best nginx configuration for Joomla

Donations

Thank You for supporting my work