一个apache为两个不同端口的网站提供服务

本文介绍如何在同一台服务器上配置两个Apache实例,通过不同的配置文件分别服务两个独立的网站,并实现负载均衡。具体步骤包括安装Apache服务、创建配置文件、设置监听端口及文档根目录等。
部署运行你感兴趣的模型镜像

看这篇博客前请先查阅  apache2.2.6 + mongrel_cluster1.0.5负载均衡  


一个台服务器开启两个httpd主进程,分别使用不同的配置文件,服务两个不同的网站。




具体步骤:

1. 从源码安装apache服务,安装路径: /usr/local/apache2.2.22


在/usr/local/apache2.2.22/conf 下创建两个配置文件httpd.conf和httpd2.conf。


httpd.conf:

ServerRoot "/usr/local/apache2.2.22"
Listen 127.0.0.1:80


LoadModule cache_module modules/mod_cache.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule rewrite_module modules/mod_rewrite.so

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>

User daemon
Group daemon

</IfModule>
</IfModule>


ServerAdmin you@example.com
ServerName 127.0.0.1:80

#DocumentRoot "/usr/local/apache2.2.22/htdocs"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>


<Directory "/usr/local/apache2.2.22/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

ErrorLog "logs/error_log"
LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
   
    CustomLog "logs/access_log" common
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/usr/local/apache2.2.22/cgi-bin/"
</IfModule>


<Directory "/usr/local/apache2.2.22/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>


DefaultType text/plain

<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>


<Proxy balancer://spacecluster>
    # cluster members
    BalancerMember http://www.iche.com:4000
    BalancerMember http://www.iche.com:4001
    BalancerMember http://www.iche.com:4002
    BalancerMember http://www.iche.com:4003
</Proxy>



ExtendedStatus On
<Location /server-status>
    SetHandler server-status
</Location>

<Location /balancer-manager>
    SetHandler balancer-manager
</Location>

<VirtualHost www.iche.com:80>
    ServerName www.iche.com
    #DocumentRoot "/home/pingan/iche2/trunk/iche"
    ProxyRequests Off

    ProxyPass /balancer-manager !
    ProxyPass /server-status !
    ProxyPass / balancer://spacecluster/
    ProxyPassReverse / balancer://spacecluster/
</VirtualHost>





httpd2.conf :



ServerRoot "/usr/local/apache2.2.22"
Listen 127.0.0.1:8080


LoadModule cache_module modules/mod_cache.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule rewrite_module modules/mod_rewrite.so

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>

User daemon
Group daemon

</IfModule>
</IfModule>


ServerAdmin you@example.com
ServerName 127.0.0.1:8080

#DocumentRoot "/usr/local/apache2.2.22/htdocs"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>


<Directory "/usr/local/apache2.2.22/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

ErrorLog "logs/error_log"
LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
   
    CustomLog "logs/access_log" common
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/usr/local/apache2.2.22/cgi-bin/"
</IfModule>


<Directory "/usr/local/apache2.2.22/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>


DefaultType text/plain

<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>


<Proxy balancer://spacecluster>
    # cluster members
    BalancerMember http://127.0.0.1:5000
    BalancerMember http://127.0.0.1:5001
    BalancerMember http://127.0.0.1:5002
    BalancerMember http://127.0.0.1:5003
</Proxy>



ExtendedStatus On
<Location /server-status>
    SetHandler server-status
</Location>

<Location /balancer-manager>
    SetHandler balancer-manager
</Location>

<VirtualHost 127.0.0.1:8080>
    ServerName www.iche.com
    #DocumentRoot "/home/pingan/iche2/trunk/iche_manager"
    ProxyRequests Off

    ProxyPass /balancer-manager !
    ProxyPass /server-status !
    ProxyPass / balancer://spacecluster/
    ProxyPassReverse / balancer://spacecluster/
</VirtualHost>




两个配置文件中除了监听的端口、DocumentRoot和PidFile路径不同外其他地方均可相同(根据自己需求适当修改)。


分别使用以下命令启动或关闭:


/usr/local/apache2.2.22/bin/httpd  -f  /usr/local/apache2.2.22/conf/httpd2.conf -k start|stop|restart




/usr/local/apache2.2.22/bin/httpd -f /usr/local/apache2.2.22/conf/httpd.conf  -k start|stop|restart



另外:/usr/local/apache2.2.22/bin/httpd  -k restart 命令只会导致子进程(apache用户进程,如simon用户)重新启动,而主进程(root用户)是不会重新启动的。








您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在一台主服务器上开启两个 Apache 服务,可按以下方式操作: ### 避免端口冲突 默认情况下,Apache 监听 80 端口。为了开启两个 Apache 服务,需要修改其中一个服务的监听端口,避免端口冲突。例如,将第二个 Apache 服务的监听端口修改为 8080。 找到 Apache 主配置文件(通常为 `/etc/httpd/conf/httpd.conf`),修改 `Listen` 参数: ```apache # 第一个 Apache 服务配置文件(如 /etc/httpd/conf/httpd.conf) Listen 80 # 第二个 Apache 服务配置文件(假设为 /etc/httpd/conf/httpd2.conf) Listen 8080 ``` ### 准备网站目录 为两个 Apache 服务分别准备不同网站目录。 ```bash # 为第一个 Apache 服务创建网站目录 mkdir -p /var/www/html/site1 echo "<h1>Here is Site 1</h1>" > /var/www/html/site1/index.html # 为第二个 Apache 服务创建网站目录 mkdir -p /var/www/html/site2 echo "<h1>Here is Site 2</h1>" > /var/www/html/site2/index.html ``` ### 配置虚拟主机 在配置文件中为两个 Apache 服务分别配置虚拟主机。 ```apache # 第一个 Apache 服务的虚拟主机配置(/etc/httpd/conf/httpd.conf) <VirtualHost *:80> DocumentRoot /var/www/html/site1 ServerName site1.example.com </VirtualHost> # 第二个 Apache 服务的虚拟主机配置(/etc/httpd/conf/httpd2.conf) <VirtualHost *:8080> DocumentRoot /var/www/html/site2 ServerName site2.example.com </VirtualHost> ``` ### 启动服务 分别启动两个 Apache 服务。 ```bash # 启动第一个 Apache 服务 systemctl start httpd # 启动第二个 Apache 服务(假设使用不同的配置文件启动) httpd -f /etc/httpd/conf/httpd2.conf -k start ``` ### 防火墙设置 确保防火墙允许两个服务端口通过。 ```bash # 允许 80 端口 firewall-cmd --permanent --add-port=80/tcp # 允许 8080 端口 firewall-cmd --permanent --add-port=8080/tcp # 重新加载防火墙规则 firewall-cmd --reload ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值