我安装了 Nginx,但我也有 Apache。我该如何运行 Nginx?当我访问我的 IP 时,我得到的是/var/www/
目录。我已经尝试在互联网上找到解决方法,但仍然不知道我做错了什么。
有人能帮助我吗?
答案1
有多种方法可以在同一台机器上同时运行 Apache 和 nginx。
这里有一种方法:假设您在 Ubuntu/Debian 上安装了 Apache 和 nginx,请按照这些说明进行操作。
最终结果是 Apache 作为“主”服务器,而 nginx 作为 Apache 虚拟主机。
修改 nginx 的端口
打开nginx默认站点:
cd /etc/nginx/sites-available
sudo cp default default.bak
sudo nano default
更改监听行下的端口服务器从 80 到 81:
…
server {
listen 81 default_server;
listen [::]:81 default_server ipv6only=on;
…
保存并退出 nano。
启用 Apache 所需的模块
sudo a2enmod proxy_http
设置虚拟主机
cd /etc/apache2/sites-available
sudo nano nginx.conf
将其粘贴到 nano 中:
<VirtualHost *:80>
# (optional) Set a ServerName:
# ServerName nginx.mydomain.com
# Set the below line to your desired subdomain:
ServerAlias nginx.*
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# Forward requests to nginx (port 81)
ProxyPass / http://127.0.0.1:81/
ProxyPassReverse / http://127.0.0.1:81/
</VirtualHost>
记下上述文件中的 ServerName 和 ServerAlias。如果有的话,请将它们更改为所需的域。
保存并退出 nano。
如果您没有域名和/或只想在本地运行,请打开 /etc/hosts:
sudo nano /etc/hosts
然后在底部添加这两行(您可以将 nginx.localhost 更改为您想要的):
# nginx
127.0.0.1 nginx.localhost
现在在 Apache 上启用 nginx:
sudo a2ensite nginx
sudo service apache2 restart
在浏览器中查看
http://nginx.localhost(或者您配置的所需域)
几点说明
- 如果您运行 PHP-FPM,则必须设置 SERVER_NAME、SERVER_PORT 和 HTTP_HOST 变量以匹配 Apache:http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#variables
- 如果你在启动 nginx 时遇到任何问题,请务必检查 error.log(在 Ubuntu 中,我必须须藤苏甚至可以看到日志文件夹内部)
答案2
如果你想运行 nginx 而不是 apache2,你有两个选择:卸载 apache2 或停止 apache2
卸载 Apache2
sudo apt-get purge apache2*
sudo apt-get autoremove
sudo apt-get autoclean
rm -rfv apache2*
或者你可以直接停止 apache2 服务
sudo service apache2 stop OR sudo service apache2ctl stop
默认 nginx 根文件夹是 /usr/share/nginx/html 或 /usr/share/nginx/www
你也应该启动 nginx 以确保万无一失
sudo service nginx start
netstat -ntlp will show you which port is being used by which service