应该这样就能构成 Apache 负责处理动态请求(PHP), Nginx 负责处理静态文件的请求了吧。
虽然现成的教程已经千千万,但这次的折腾还是再次记录下来以便后续继续研究,目前只是粗略的研究一下下可能会出现一些奇奇怪怪的问题吧。
为了能多站点部署且不过多的占用端口,使用不同的主机名区分不同的站点。
1、修改 Apache 默认的端口号,便于同时安装的 Nginx 能正常使用默认的80和443端口。
修改文件/etc/apache2/ports.conf
中的端口号,比如为:
# If you just change the port or add more ports here, you will likely also # have to change the VirtualHost statement in # /etc/apache2/sites-enabled/000-default.conf Listen 8080 <IfModule ssl_module> Listen 8443 </IfModule> <IfModule mod_gnutls.c> Listen 8443 </IfModule>
2、添加对应域名的虚拟主机:
比如新增文件/etc/apache2/sites-enabled/test.cyzwb.com.conf
,内容如下:
<VirtualHost *:8080> ServerName test.cyzwb.com ServerAlias test.cyzwb.com ServerAdmin webmaster@localhost DocumentRoot /var/www/test.cyzwb.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
这个是简化了的配置文件,参考现在使用的这个面板的配置文件可复杂得多了。
3、重启 Apache 使其生效
systemctl restart apache2
4、安装 Nginx
apt install nginx
使用 Debian 12 源带的版本 nginx/1.22.1
5、新增对应主机名的配置文件/etc/nginx/sites-enabled/test.cyzwb.com.conf
,内容如下:
server { listen 80; server_name test.cyzwb.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|ttf|otf|webp|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3|mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf|woff|woff2)$ { root /var/www/test.cyzwb.com; expires max; } } }
6、重启 Nginx 使其生效
systemctl restart nginx
7、安装PHP的一些扩展以便安装Wordpress:
apt install php8.2-mysqli php8.2-curl php8.2-dom php8.2-imagick php8.2-mbstring php8.2-zip php8.2-gd php8.2-intl
上述的扩展是站点健康中提示到的,如果需要其他扩展再依次安装。
ChiuYut
2024年10月09日