我按照 Digital Ocean 上的教程安装了激光脉冲服务器成功。
然后我阅读了有关使用 Nginx 和 APache 在同一个 droplet 上托管多个网站的反向代理。
因为我有一个 Big fat droplet,所以我想在同一个 droplet 上托管两个基于 Laravel 的 APP。
因此,我使用本教程安装了 apache2 关联
但不幸的是 apache 没有运行
$ sudo service apache2 reload
* Reloading web server apache2 *
* Apache2 is not running
所以我做了
sudo netstat -tlpn
并得到这张表
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address Stat e PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LIST EN 5377/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LIST EN 1233/sshd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LIST EN 3529/mysqld
tcp6 0 0 :::80 :::* LIST EN 5377/nginx
tcp6 0 0 :::22 :::* LIST EN 1233/sshd
我是一名 Windows 用户,但我不知道如何解决这个问题。
谁能帮我吗 。
谢谢,
答案1
Nginx 在端口 80 上运行,这没问题。Apache httpd 的默认端口也是端口 80,这是一个问题。
重新配置 Apache httpd
使用 Apache httpd 的 8080 端口。打开
ports.conf
sudo nano vi /etc/apache2/ports.conf
并替换
Listen 80
和
Listen 8080
如果需要的话,对虚拟主机执行相同操作。
重新启动 Apache httpd
sudo systemctl restart apache2
或在 Trusty 上使用
sudo service apache2 restart
检查输出
netstat
$ sudo netstat -tulpn | grep apache2 tcp6 0 0 :::8080 :::* LISTEN 22769/apache2
是的,从上面的输出来看,httpd 正在监听 tcp 端口 80。
重新配置 nginx 以作为代理,并使用 Apache httpd 作为后端,例如通过编辑端口 80
/etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
location
并在下面的部分中添加代理设置proxy_pass http://127.0.0.1:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Forwarded-Port 80; proxy_set_header Host $host;
重启 nginx
sudo systemctl restart nginx
或在 Trusty 上使用
sudo service nginx restart
检查输出
netstat
$ sudo netstat -tulpn | grep -P 'nginx|apache2' tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 22973/nginx -g daem tcp6 0 0 :::80 :::* LISTEN 22973/nginx -g daem tcp6 0 0 :::8080 :::* LISTEN 22769/apache2
将 httpd 配置为仅监听 127.0.0.1 是一个好主意。
答案2
长话短说 - 您必须运行 apache 来监听不同的端口(Listen),因为端口 80 已经被 nginx 使用。