记一次服务器三剑客(Tomcat、Apache、Nginx)使用经历

前言

记录一次使用 tomcat 部署 opengrak 代码查看工具,再使用 apache 或 nginx 部署 ladp 认证协议(tomcat也可直接配置 ldap 协议认证,但有些参数没搞懂,没调试通)去反向代理 tomcat,以达到对 tomcat 内应用进行认证使用的目的,在此着重于记录整理三大服务器的基本使用与区别。

Tomcat 服务器配置

配置运行

使用源码安装

  • tomcat 需要依赖 java,所以首先要安装一个 java 版本,在此不再赘余。
  • 进到 Apache tomcat 官网 下载需要的版本,我这边下载的是 9.0 的源码包,源码包无需安装,直接使用

基本使用(源码包)

# 在源码放置路径下执行 startup.sh 脚本即可启动服务
${CATALINA_HOME}/bin/startup.sh
# 在源码防止路径下执行 shutdown.sh 脚本即可停止服务
${CATALINA_HOME}/bin/shutdown.sh

在 Linux 中还可以使用 apt install tomcat安装 tomcat

应用部署

  • 如果应用有 war 包则可以将 war 包拷贝到源码放置路径下的 webapps 路径下,如果在 windows 系统下会自动解压,如果在 linux 情况下,需要使用 unzip xxx.war对其进行解包,生成一个文件夹,然后在浏览器中进行访问

127.0.0.1:8080/xxx(解压后的文件夹名称)

  • 如果没有 war 包,直接拷贝进路径,直接访问

127.0.0.1:8080/xxx(应用文件夹名)

Tomcat 配置 openldap 添加验证

tomcat 可以直接部署 ldap 服务,但是本人测试不同,有几个参数一直未弄懂,所以就不在此说明,感兴趣的可以试一试

Apache 服务器配置(apache2)

配置运行

  • 在 Linux 中可以直接使用 apt install apache2进行 apache2 的安装
  • apache 和 apache2 存在差异,可自行了解
  • 也可在官网下载安装包进行安装

基本使用

  • 安装成功后可以通过访问 127.0.0.1:80访问 apache 主页
  • 相关命令

产生的启动和停止文件是:/etc/init.d/apache2

启动:sudo apache2 start

停止:sudo apache2 stop

重新启动:sudo apache2 restart

配置文件保存在 /etc/apache2 目录下

  • 文件作用

包含动态模块的配置:  Include /etc/apache2/mods-enabled/.load  Include /etc/apache2/mods-enabled/.conf

包含用户自己的配置:  Include /etc/apache2/httpd.conf

包含端口监听的配置:  Include /etc/apache2/ports.conf

包含一般性的配置语句片断: Include /etc/apache2/conf.d/

包含虚拟主机的配置指令:  Include /etc/apache2/sites-enabled/

反向代理 Tomcat

# 在 sites-available 路径中复制一个 conf 配置文件
> cp -r 000-default.conf test.conf
# 在该文件中添加配置
# 首先得确保下面的包都存在,没有得自行安装
echo '
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so
LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
LoadModule proxy_ftp_module /usr/lib/apache2/modules/mod_proxy_ftp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

ServerName test.com
<VirtualHost 127.0.0.1:80>      # 监听 80 端口
	ServerName test.com
	ServerAdmin test.com
	ServerAlias test.com
	ProxyVia	Off
	ProxyRequests	Off
	DocumentRoot	${CATALINA_HOME}webapps/test    # tomcat 中应用路径
	ErrorLog	"logs/test"
	TransferLog	"logs/test"
	ProxyPreserveHost	On
	<Proxy *>
		Order deny,allow
		Allow from all
	</Proxy>                    # 最主要的部分
	ProxyPass	/	http://localhost:8080/test/
	ProxyPassReverse	/	http://localhost:8080/test/
	<Location / >
		Order allow,deny
		Allow from all
	</Location>
</VirtualHost>
' > test.conf

至此配置完成,访问 127.0.0.1:80的时候会跳转到 127.0.0.1:8080/test

配置 openldap 添加验证

在已经有 ldap 服务器端的前提下,这里仅配置 apache2 端

在 /etc/apache2.conf 添加配置

<Directory />       # 这里是针对路径下的页面进行验证,好像是有一个对访问端口进行验证的标签,觉得那种的应该更好用
        Options Indexes FollowSymLinks
        Allowoverride authconfig
        Order allow,deny
        Allow from all
        AuthName "Welcome to Opengrok"
        AuthType basic
        AuthBasicProvider ldap
        # AuthLDAPAuthoritative on
        # AuthLDAPEnabled on
        AuthLDAPURL ldap://<ip>/ou=people,dc=test,dc=net?uid
        AuthLDAPGroupAttribute memberUid
        AuthLDAPGroupAttributeIsDN off
        require ldap-group cn=mobdrid,ou=group,dc=test,dc=net
        require ldap-attribute gidNumber=1012
</Directory>

*以上很多参数需要换成自己的参数

apache 和 tomcat的区别

  • apache 处理静态文件,tomcat 可以处理动态页面
  • 大致可以抽象为:apache 好比一辆可以拉货的车,tomcat 比作水箱,动态应用好比水,不可以直接用车拉水,只能先用水箱装水,然后再用车拉水箱

Nginx 服务器配置

配置运行

  • 可以使用 apt install安装 nginx
  • 由于我们需要添加 ldap验证,所以使用源码安装 nginx,官网下载安装包,在开始安装前需要下载一个模块:

git clone https://github.com/kvspb/nginx-auth-ldap.git

nginx 编译时候加入 --add-module=/usr/local/src/nginx-auth-ldap

基本使用

nginx -s quit       优雅停止nginx,有连接时会等连接请求完成再杀死worker进程

nginx -s reload     优雅重启,并重新载入配置文件nginx.conf

nginx -s reopen     重新打开日志文件,一般用于切割日志

nginx -v            查看版本  

nginx -t            检查nginx的配置文件

nginx -h            查看帮助信息

nginx -V            详细版本信息,包括编译参数 

nginx  -c filename  指定配置文件

反向代理 Tomcat,添加 ldap 验证登录

  • 添加 ldap 配置到 conf/nginx.conf 中 http 标签中
ldap_server openldap{
		url ldap://<ip>:<host>/dc=longcheer,dc=net?uid?sub?(objectClass=person);
		binddn "cn=admin,dc=test,dc=net";
		binddn_passwd "passwd";
		group_attribute memberUid;
		group_attribute_is_dn on;
# 		require valid_user;
		}
  • 在 conf/nginx.conf 中 http 标签中添加
 upstream tomcat {
		server 127.0.0.1:8080 weight=1;     # 代理的地址
		}

    server {
        listen       8000;
        server_name  localhost;

	    auth_ldap "Forbidden";
	    auth_ldap_servers openldap;     # 上面配置的 ldap_server 名称 
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
	    # auth_ldap "Forbidden";
	    # auth_ldap_servers openldap;
	    proxy_pass http://tomcat;
	    proxy_redirect default;
	    proxy_connect_timeout 10;
        }

nginx 和 apache 的区别

浅析Nginx与Apache的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值