我有一个 PHP 脚本,它处理脚本路由并执行各种奇特的事情。它最初是为 Apache 设计的,但我正在尝试将它迁移到 nginx 以用于我的一些机器。现在,我正在尝试在测试服务器上解决问题。
所以脚本的工作方式是它使用.htaccess
文件拦截目录(在 Apache 中)的所有 HTTP 流量。这是它的样子:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.+$ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
很简单。所有请求都通过index.php
,简单明了。
我想在 nginx 上模仿这种行为,但我还没有找到方法。有人有什么建议吗?
这是我目前nginx.conf
文件的副本。请注意,它是为我设计的,只是为了让它工作;主要是复制/粘贴工作。
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type text/plain;
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name swingset.serverboy.net;
access_log /var/log/nginx/net.serverboy.swingset.access_log;
error_log /var/log/nginx/net.serverboy.swingset.error_log warn;
root /var/www/swingset;
index index.php index.html;
fastcgi_index index.php; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用我的 Linode 设置私有 IP。我正在运行 Debian。这是我的 Linode 的网络选项卡:
eth0: 69.164.214.146
( li129-146.members.linode.com )
Gateways: 69.164.214.1
Netmask: 255.255.255.0
Private eth0: 192.168.140.217
Netmask: 255.255.128.0
DNS Servers: 97.107.133.4
207.192.69.4
207.192.69.5
Run Code Online (Sandbox Code Playgroud)
这是我的/etc/network/interfaces
文件:
auto lo
iface lo inet loopback
auto eth0 eth0:0
iface eth0 inet static
address 69.164.214.146
netmask 255.255.255.0
gateway 69.164.214.1
iface eth0:0 inet static
address 192.168.140.217
netmask 255.255.128.0
Run Code Online (Sandbox Code Playgroud)
在我正在设置的 linode 上,我可以ping 192.168.140.217
正常工作。不过,另一个 linode 不会。
是的,另一个 Linode 位于同一个数据中心。
也许我需要做些iptables
什么?可能是我的配置不对?任何帮助表示赞赏。
我一直在考虑运行 lighttpd 来获取静态内容,但我不想花额外的钱来运行第二个盒子。是否有可能(这是我的冒险)在端口 80 上运行 Apache 并在另一个端口(例如 81)上运行 lighttpd?我知道最好把它放在另一个盒子上,但如果可能的话,我希望以便宜的价格做到这一点。
谢谢