Apache httpd服务配置详解
查看版本:httpd -v
Server version: Apache/2.4.33 (Unix)
Server built: Apr 3 2018 17:54:07
文件路径:/etc/apache2/httpd.conf
# 服务目录(全局配置)用于指定Apache的安装路径,# 此选项参数值在安装Apache时系统会自动把Apache的路径写入ServerRoot "/usr" # 设置互斥对象的目录# Mutex default:/private/var/run # 侦听web服务端口状态,默认Listen:80 侦听所有的地址的80端口# 也可以写成IP地址的侦听形式,Listen 12.34.56.78:80# 不写即默认的地址:0.0.0.0<IfDefine SERVER_APP_HAS_DEFAULT_PORTS> Listen 8080</IfDefine><IfDefine !SERVER_APP_HAS_DEFAULT_PORTS> Listen 80</IfDefine> # 动态共享对象支持 用于添加Apache一些动态模块LoadModule authn_file_module libexec/apache2/mod_authn_file.so#LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so#LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so#LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so#LoadModule authn_socache_module libexec/apache2/mod_authn_socache.soLoadModule authn_core_module libexec/apache2/mod_authn_core.soLoadModule authz_host_module libexec/apache2/mod_authz_host.soLoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.soLoadModule authz_user_module libexec/apache2/mod_authz_user.so#LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so#LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so#LoadModule authz_dbd_module libexec/apache2/mod_authz_dbd.soLoadModule authz_core_module libexec/apache2/mod_authz_core.so#LoadModule authnz_ldap_module libexec/apache2/mod_authnz_ldap.soLoadModule access_compat_module libexec/apache2/mod_access_compat.soLoadModule auth_basic_module libexec/apache2/mod_auth_basic.so#LoadModule auth_form_module libexec/apache2/mod_auth_form.so#LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so#LoadModule allowmethods_module libexec/apache2/mod_allowmethods.soLoadModule file_cache_module libexec/apache2/mod_file_cache.so#LoadModule cache_module libexec/apache2/mod_cache.so#LoadModule cache_disk_module libexec/apache2/mod_cache_disk.so#LoadModule cache_socache_module libexec/apache2/mod_cache_socache.so#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so#LoadModule socache_dbm_module libexec/apache2/mod_socache_dbm.so#LoadModule socache_memcache_module libexec/apache2/mod_socache_memcache.soLoadModule watchdog_module libexec/apache2/mod_watchdog.soLoadModule macro_module libexec/apache2/mod_macro.so#LoadModule dbd_module libexec/apache2/mod_dbd.so#LoadModule dumpio_module libexec/apache2/mod_dumpio.soLoadModule echo_module libexec/apache2/mod_echo.soLoadModule buffer_module libexec/apache2/mod_buffer.soLoadModule data_module libexec/apache2/mod_data.soLoadModule ratelimit_module libexec/apache2/mod_ratelimit.soLoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.soLoadModule ext_filter_module libexec/apache2/mod_ext_filter.soLoadModule request_module libexec/apache2/mod_request.soLoadModule include_module libexec/apache2/mod_include.soLoadModule filter_module libexec/apache2/mod_filter.so#LoadModule reflector_module libexec/apache2/mod_reflector.so#LoadModule substitute_module libexec/apache2/mod_substitute.so#LoadModule sed_module libexec/apache2/mod_sed.soLoadModule charset_lite_module libexec/apache2/mod_charset_lite.so#LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule xml2enc_module libexec/apache2/mod_xml2enc.soLoadModule proxy_html_module libexec/apache2/mod_proxy_html.soLoadModule mime_module libexec/apache2/mod_mime.so#LoadModule ldap_module libexec/apache2/mod_ldap.soLoadModule log_config_module libexec/apache2/mod_log_config.soLoadModule log_debug_module libexec/apache2/mod_log_debug.so#LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so#LoadModule logio_module libexec/apache2/mod_logio.soLoadModule env_module libexec/apache2/mod_env.soLoadModule mime_magic_module libexec/apache2/mod_mime_magic.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule headers_module libexec/apache2/mod_headers.soLoadModule usertrack_module libexec/apache2/mod_usertrack.so##LoadModule unique_id_module libexec/apache2/mod_unique_id.soLoadModule setenvif_module libexec/apache2/mod_setenvif.soLoadModule version_module libexec/apache2/mod_version.soLoadModule remoteip_module libexec/apache2/mod_remoteip.soLoadModule proxy_module libexec/apache2/mod_proxy.soLoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.soLoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.soLoadModule proxy_http_module libexec/apache2/mod_proxy_http.soLoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.soLoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.soLoadModule proxy_fdpass_module libexec/apache2/mod_proxy_fdpass.soLoadModule proxy_wstunnel_module libexec/apache2/mod_proxy_wstunnel.soLoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.soLoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.soLoadModule proxy_express_module libexec/apache2/mod_proxy_express.soLoadModule proxy_hcheck_module libexec/apache2/mod_proxy_hcheck.soLoadModule session_module libexec/apache2/mod_session.soLoadModule session_cookie_module libexec/apache2/mod_session_cookie.soLoadModule session_dbd_module libexec/apache2/mod_session_dbd.soLoadModule slotmem_shm_module libexec/apache2/mod_slotmem_shm.so#LoadModule slotmem_plain_module libexec/apache2/mod_slotmem_plain.soLoadModule ssl_module libexec/apache2/mod_ssl.so#LoadModule dialup_module libexec/apache2/mod_dialup.so#LoadModule http2_module libexec/apache2/mod_http2.so#LoadModule lbmethod_byrequests_module libexec/apache2/mod_lbmethod_byrequests.so#LoadModule lbmethod_bytraffic_module libexec/apache2/mod_lbmethod_bytraffic.so#LoadModule lbmethod_bybusyness_module libexec/apache2/mod_lbmethod_bybusyness.so##LoadModule lbmethod_heartbeat_module libexec/apache2/mod_lbmethod_heartbeat.soLoadModule unixd_module libexec/apache2/mod_unixd.so#LoadModule heartbeat_module libexec/apache2/mod_heartbeat.so#LoadModule heartmonitor_module libexec/apache2/mod_heartmonitor.so#LoadModule dav_module libexec/apache2/mod_dav.soLoadModule status_module libexec/apache2/mod_status.soLoadModule autoindex_module libexec/apache2/mod_autoindex.so#LoadModule asis_module libexec/apache2/mod_asis.soLoadModule info_module libexec/apache2/mod_info.soLoadModule cgi_module libexec/apache2/mod_cgi.so#LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so#LoadModule dav_lock_module libexec/apache2/mod_dav_lock.soLoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.soLoadModule negotiation_module libexec/apache2/mod_negotiation.soLoadModule dir_module libexec/apache2/mod_dir.soLoadModule imagemap_module libexec/apache2/mod_imagemap.soLoadModule actions_module libexec/apache2/mod_actions.soLoadModule speling_module libexec/apache2/mod_speling.soLoadModule userdir_module libexec/apache2/mod_userdir.soLoadModule alias_module libexec/apache2/mod_alias.soLoadModule rewrite_module libexec/apache2/mod_rewrite.soLoadModule php7_module libexec/apache2/libphp7.soLoadModule perl_module libexec/apache2/mod_perl.soLoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so#LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so <IfModule unixd_module># 指定Apache服务的运行用户和用户组,默认为:daemonUser _wwwGroup _www</IfModule> # 指定Apache服务管理员通知邮箱地址,可以默认也可以设置为自己真实邮箱ServerAdmin woodtengfei@gmail.com # 指定Apache默认的服务器名及端口ServerName localhost:80 # 用户对根目录下所有的访问权限控制,默认Apache对根目录都是拒绝访问<Directory /> AllowOverride none Require all denied</Directory> # 用于定义网站数据的保存路径,启动httpd后访问localhost显示It works是放在# DocumentRoot/index.html的,修改index.html的内容定义自己的初始页面内容DocumentRoot "/Library/WebServer/Documents"<Directory "/Library/WebServer/Documents"> Options FollowSymLinks Multiviews MultiviewsMatch Any AllowOverride None Require all granted</Directory> # 设置Apache默认支持的首页,默认只支持:index.html首页,如要支持其他类型# 的首页,需要在此区域添加:如index.php表示支持index.php类型首页<IfModule dir_module> DirectoryIndex index.html index.php index.jsp</IfModule> <FilesMatch "^\.([Hh][Tt]|[Dd][Ss]_[Ss])"> Require all denied</FilesMatch><FilesMatch \.php$> SetHandler application/x-httpd-php</FilesMatch> <Files "rsrc"> Require all denied</Files><DirectoryMatch ".*\.\.namedfork"> Require all denied</DirectoryMatch> # 主要是针对Apache默认的日志级别,默认的访问日志路径,默认的错误日志# 路径等相关设置,此选项内容默认即可ErrorLog "/private/var/log/apache2/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> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "/private/var/log/apache2/access_log" common</IfModule> # 主要包含一些URL重定向、别名、脚本别名等相关设置和说明<IfModule alias_module> # Redirect permanent /foo http://www.example.com/bar # Alias /webpath /full/filesystem/path # ScriptAlias: This controls which directories contain server scripts. ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"</IfModule><IfModule cgid_module> #Scriptsock cgisock</IfModule><Directory "/Library/WebServer/CGI-Executables"> AllowOverride None Options None Require all granted</Directory><IfModule headers_module> RequestHeader unset Proxy early</IfModule> # MIME媒体文件,以及相关http文件解析配置说明<IfModule mime_module> TypesConfig /private/etc/apache2/mime.types AddType application/x-gzip .tgz AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType text/html .shtml #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz #AddHandler cgi-script .cgi #AddHandler type-map var #AddOutputFilter INCLUDES .shtml</IfModule>#MIMEMagicFile /private/etc/apache2/magic #ErrorDocument 500 "The server made a boo boo."#ErrorDocument 404 /missing.html#ErrorDocument 404 "/cgi-bin/missing_handler.pl"#ErrorDocument 402 http://www.example.com/subscription_info.html#MaxRanges unlimited#EnableMMAP off#EnableSendfile onTraceEnable off # 服务器池管理Include /private/etc/apache2/extra/httpd-mpm.conf # 多语言错误消息#Include /private/etc/apache2/extra/httpd-multilang-errordoc.conf # 动态目录列表形式配置Include /private/etc/apache2/extra/httpd-autoindex.conf # 语言设置#Include /private/etc/apache2/extra/httpd-languages.conf # 个人主页目录#Include /private/etc/apache2/extra/httpd-userdir.conf # 请求和配置上的实时信息#Include /private/etc/apache2/extra/httpd-info.conf # 虚拟主机Include /private/etc/apache2/extra/httpd-vhosts.conf # Apache Http Server手册#Include /private/etc/apache2/extra/httpd-manual.conf # 分布式创作和版本控制#Include /private/etc/apache2/extra/httpd-dav.conf # 多种类默认设置#Include /private/etc/apache2/extra/httpd-default.conf # mod_proxy_html 使其支持HTML4/XHTML1 配置补充<IfModule proxy_html_module>Include /private/etc/apache2/extra/proxy-html.conf</IfModule> # Secure (SSL/TLS) connections Apache服务器安全连接设置#Include /private/etc/apache2/extra/httpd-ssl.conf<IfModule ssl_module>SSLRandomSeed startup builtinSSLRandomSeed connect builtin</IfModule> Include /private/etc/apache2/other/*.conf
我现在有个web项目和Java项目,我要部署到服务器上可以访问,该怎么做?
可以通过Nginx,也可以通过Apache的虚拟主机服务
确保启用了虚拟主机服务
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
# 虚拟主机Include /private/etc/apache2/extra/httpd-vhosts.conf
下面是虚拟主机配置说明
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>#如果每台运行Linux系统的服务器上只能运行一个网站,那么人气低、流量小的草根#站长就要被迫承担着高昂的服务器租赁费用了,这显然也会造成硬件资源的浪费。在#虚拟专用服务器(Virtual Private Server,VPS)与云计算技术诞生以前,IDC服务#供应商为了能够更充分地利用服务器资源,同时也为了降低购买门槛,于是纷纷启用#了虚拟主机功能。利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成#多个“虚拟的服务器”。但是,该技术无法实现目前云主机技术的硬件资源隔离,让这#些虚拟的服务器共同使用物理服务器的硬件资源,供应商只能限制硬盘的使用空间大#小。出于各种考虑的因素(主要是价格低廉),目前依然有很多企业或个人站长在使#用虚拟主机的形式来部署网站。#Apache的虚拟主机功能是服务器基于用户请求的不同IP地址、主机域名或端口号,实#现提供多个网站同时为外部提供访问服务的技术。用户请求的资源不同,最终获取到#的网页内容也各不相同。#<VirtualHost *:80># ServerAdmin webmaster@dummy-host.example.com# DocumentRoot "/usr/docs/dummy-host.example.com"# ServerName dummy-host.example.com# ServerAlias www.dummy-host.example.com# ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"# CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common#</VirtualHost> # https://segmentfault.com/q/1010000008075477 # 访问404要修改hosts文件/etc/hosts,如果Forbidden查看文件夹是否有访问权限<VirtualHost *:80> ServerAdmin woodwu@staritgp.com DocumentRoot "/Users/wood/Micro/static" ServerName micro.com ServerAlias www.micro.com Alias / /Users/wood/Micro/static/ <Directory /Users/wood/Micro/static> Options Indexes FollowSymLinks AllowOverride All Require all granted Allow from all </Directory></VirtualHost>
上面代码翻译过来就是:
服务监听80端口(浏览器访问http网站默认是80端口,https是443端口)
ServerName micro.com 表示可以用micro.com访问DocumentRoot目录
ServerAlias www.micro.com 是micro.com的别名,前面加个www也是可以访问的
访问时可能遇到的问题
403权限问题问题,按照如上 Directory配置 All from all
404Not Found问题修改hosts文件,sudo vi /etc/hosts 给micro.com域名指定ip
如果按照上面的配置来,还是出现Forbidden的权限问题,那么请检查/Users/wood/Micro/static中的任何一个目录有访问权限
chmod -R 777 /Users/wood/Micro/static/
but然并卵~
来看看日志:/etc/var/log/apache2/error_log
access to /en/about/index.html denied (filesystem path ‘/Users/wood/Micro‘) because search permissions are missing on a component of the path
逐个查看文件夹权限发现
everyone是无访问权限,修改为只读即可
--------------------------------------反向代理---------------------------------------
#反向代理ProxyRequests Off #paymentProxyPass /payment http://127.0.0.1:8821ProxyPassReverse /payment http://127.0.0.1:8821 <proxy *> AllowOverride All Order Deny,Allow Allow from all</proxy>
访问localhost/payment -> 实际上是访问了http://127.0.0.1:8821服务
更多关于Apache httpd反向代理的配置请见 https://www.cnblogs.com/wood-life/p/10318014.html
原文地址:https://www.cnblogs.com/wood-life/p/10451152.html