Z. QIU
Posted on November 23, 2020
Info: This post is one of the articles in context of this post: Huawei Cloud ECS server notes
I have just now installed TomCat and Nginx on our Huawei Cloud server. In this post, I would like to note the operations I've done in this task.
TomCat
I have created file ~/launchers/tomcat_8888.sh and filled it with the following content:
docker rm -f tomcat_8888
docker run \
-it -d --privileged=true \
--name tomcat_8888 \
--net bridge-network \
-p 8888:8080 \
-v /home/jemaloQ/www_server:/usr/local/tomcat/webapps \
-v /home/jemaloQ/docker/www_server/logs:/usr/local/tomcat/logs \
tomcat:latest
Launch TomCat as docker container:
sudo sh ~/launchers/tomcat_8888.sh
Now create a webpage for testing tomcat:
cd ~/www_server
mkdir home
cd home/
touch index.html
Put the following html code in this index.html file:
<!DOCTYPE html>
<html>
<head>
<title>Test TomCat Servie</title>
</head>
<body>
<h1>Tomcat over docker is working</h1>
<p> Port = 8888 </p>
</body>
</html>
Open the browser, try http://myip:8888/test, voilà:
Nginx
I use the following cmd line for installing Nginx in a native way:
sudo apt install nginx-full
Check if Nginxservice is running:
service nginx status
The default conf file of Nginx "nginx.conf" can be found in directory /etc/nginx/
. Usually, we do not need to modify this file. In this file, there is one line as: include /etc/nginx/conf.d/*.conf;
, meaning that Nginx shall take into account all .conf user files created in /etc/nginx/conf.d
repository.
Below are operations that I have performed (Some may require sudo
permission):
touch /etc/nginx/conf.d/myconf.conf
vi /etc/nginx/conf.d/myconf.conf
In myconf.conf file, I add the following lines:
server {
listen 80;
server_name 111.22.133.117 sssbot.cn localhost;
# server_name localhost;
gzip on;
gzip_types text/plain application/xml text/css application/javascript;
gzip_min_length 1000;
location /demo/industry_safety {
proxy_pass http://111.22.133.117:8888/industry_safety;
}
location ~* /demo/industry_safety/([a-z]+)$ {
rewrite /demo/industry_safety/([a-z]+)$ /demo/industry_safety/;
}
location /test {
proxy_pass http://111.22.133.117:8888/test;
}
location / {
default_type application/octet-stream;
include /etc/nginx/mime.types;
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Make nginx reload all its configurations:
nginx -s reload
Check if http://myip:8888/test/ has been redirected to http://myip/test:
I have a real SaaS project named "industry_safety" whose front-end is a Vue-based website. There are many static resources in this project which may bring problems after URL redirection. As shown in /etc/nginx/conf.d/myconf.conf file, I have redirected original url http://myip:8888/industry_safety/ to http://myip/demo/industry_safety/.
Check it now and it works :
Posted on November 23, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.