我的服务器上有 nginx,我运行下面的脚本向 iptables 添加规则:
#!/bin/bash
ip=/sbin/iptables
services='22 25 53 80 443 5432 8000 8080'
$ip -F;
$ip -t nat -F;
echo -e "Opening port 22 for ssh";
$ip -A INPUT -p tcp --dport 22 -j ACCEPT;
$ip -A OUTPUT -p tcp --sport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT;
$ip -P INPUT DROP;
$ip -P OUTPUT ACCEPT;
$ip -P FORWARD DROP;
echo -e "Accept lo";
$ip -A INPUT -i lo -j ACCEPT;
$ip -A OUTPUT -o lo -j ACCEPT;
$ip …Run Code Online (Sandbox Code Playgroud) 我有一个带有 1 个 html 文件的简单网站index.html。我希望该类型的所有用户都example.com/abcde将被重定向到example.com
当然,所有指向资源文件(图像/css/js 等)的链接都应该工作
目前,我有这个:
location / {
try_files $uri /index.html;
}
Run Code Online (Sandbox Code Playgroud)
此设置有效,如果用户尝试打开example.com/abcde. 但是浏览器中的URL并没有改变... 如何重写URL?
我有一个 768MB 的 Linode VPS。在另一台服务器(Speedysparrow)上,同样有 768MB,我运行了 Nginx,它非常棒,你可以在这里看到:http ://www.ubuntubrsc.com/ 。这个网站,我在下面谈到的设置,使用大约 160~180MB,每天大约有 15~20k 的综合浏览量。
但我正在创建一个无尽的网站,我想知道我的网络服务器。我一直在将 Nginx 与 PHP-FPM、Varnish、APC 和 Percona 的 MySQL 一起使用,它按预期工作,但我想知道......
由于 mod_pagespeed,我想尝试一下 Apache。遗憾的是,Nginx 没有 mod_pagespeed 支持(据我所知),它似乎是一个非常好的安装模块。
当然,我可以(并且确实)使用 W3 Total Cache,但我认为 mod_pagespeed 无论如何都会很棒。我也总是可以优化 Apache 的地狱......但我不知道它是否能在 768MB VPS 中运行良好......我怀疑它至少会比我的 Nginx 设置做得更好。
此外,还有网站的安全部分......
你看,因为它是一个无尽的网站,我猜它迟早会成为一个目标。我似乎有其他网站与此内容有关,并且就我所知如何保护 Nginx(至少是困难的事情),我似乎有更多关于 Apache 主题的资源。
例如,诸如5G 防火墙之类的东西都集中在 Apache 中。我可以为 Nginx 重写所有规则,但这还不是我擅长的。
我在使用 W3 Total Cache + Nginx 时还有一个问题:如果我使用磁盘缓存(增强型),我的首页会出现 404 错误,所以我必须将它与 APC 或普通磁盘一起使用...
所以我在这里的问题是:mod_pagespeed + Apache 的所有安全资源是否值得?我应该将 Apache 与 mod_pagespeed 一起使用还是我不会从中获得任何好处而应该继续使用 Nginx?
感谢您的时间人们:)
可能的重复:
在哪里可以找到以及如何阻止列入黑名单的 IP 和代理?
某些程序会更改用户似乎来自的 IP。
我想知道是否有办法阻止这些用户,只允许他们使用他们的真实 IP 访问我的网站。
Nginx 启动选项的文档对选项给出了以下解释-p:
-p prefix Set prefix path (default: /usr/local/nginx/). (version >= 0.7.53)
Run Code Online (Sandbox Code Playgroud)
我真的不明白这是什么意思。这个选项可以用来做什么?什么是前缀?
我正在尝试从我的 django 应用程序发送电子邮件。
但是,这不适用于我的 NGINX(用于静态资源)+ GUNICORN 服务器。
但是,同样适用于 django 的默认网络服务器。到目前为止,我还没有设置邮件服务器本身。
我不确定问题是什么。
让我解释整个情况,因为这个问题没有得到很好的解释。
如果我使用默认调试 WSGI 从 Django 中的 Web 应用程序发送电子邮件,
和以下代码
from django.core.mail import send_mail
send_mail('Subject here', 'Here is the message.', 'from@example.com',
['to@example.com'], fail_silently=False)
Run Code Online (Sandbox Code Playgroud)
我可以发送电子邮件。
但是,我已经设置了一个 nginx 服务器和一个 gunicorn wsgi。我无法发送邮件。
我的 nginx.conf 看起来像这样
server {
listen 80;
listen 443;
listen 587;
server_name 172.17.110.205;
client_max_body_size 0M;
access_log /home/msrb_db/msrb_db_application/access.log;
error_log /home/msrb_db/msrb_db_application/error.log;
location /static {
root /home/msrb_db/msrb_db_application;
}
location / {
proxy_pass http://172.17.110.205:8080;
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个 gunicorn 服务器作为系统文件,其工作方式如下
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=msrb_db …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 apache 或 nginx 虚拟主机设置多个 https 网站,但我注意到我必须将端口附加到 IP 地址的末尾才能查看使用非默认 443 ssl 端口的网站的 https
是否可以在同一台服务器上使用不同的端口拥有多个 https 网站?如果是,那么如何才能做到这一点而不需要在末尾附加非默认端口
我尝试过什么
# Ensure that Apache listens on port 80 and all ssl ports
Listen 80
Listen 443
Listen 543
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
NameVirtualHost *:443
NameVirtualHost *:543
<VirtualHost 192.168.101.44:443>
DocumentRoot /www/example1
ServerName www.example1.com
# Other directives here
</VirtualHost>
<VirtualHost 192.168.101.54:543>
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
按此顺序,将能够分别访问https://www.example1.com和https://www.example2.org上的网站
这可能吗?阿帕奇?nginx?我使用这两个网络服务器,所以想知道它是否可以与其中一个或两个一起使用。如果需要,我可以将问题编辑得更清楚。
谢谢
我试图将Bjoern放在 Nginx 之后,以便轻松实现负载平衡和 DoS/DDoS 攻击缓解。
令我沮丧的是,我不仅发现它会像芯片一样丢弃连接(它在总连接数的 20% 到 50% 之间变化),而且如果不放在后面,它实际上似乎更快。
这是在具有 6GB RAM 和双核 2Ghz cpu 的机器上测试的。
我的应用程序是这样的:
import bjoern,redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
val = r.get('test:7')
def hello_world(environ, start_response):
status = '200 OK'
res = val
response_headers = [
('Content-type','text/plain'),
('Content-Length',str(len(res)))]
start_response(status, response_headers)
return [res]
# despite the name this is not a hello world as you can see
bjoern.run(hello_world, 'unix:/tmp/bjoern.sock')
Run Code Online (Sandbox Code Playgroud)
nginx配置:
user www-data;
worker_processes 2;
worker_rlimit_nofile 52000; # worker_connections * 2
pid /run/nginx.pid;
events { …Run Code Online (Sandbox Code Playgroud) 所以我最近有一台服务器(运行多个站点)被黑了,一个低级别的用户帐户正在启动大量进程(发送垃圾邮件),这些进程反复使服务器崩溃。出于无奈,我删除了该用户。
我立即后悔并开始在每个站点上收到 500 个错误。我用相同的用户名和密码创建了另一个用户,现在我得到了
No input file specified.
Run Code Online (Sandbox Code Playgroud)
在每一页上。
经过一些谷歌搜索后,看起来这可能与我的 chroot 和 PHP 以及 nginx 具有不同的路径有关。我假设我在删除用户之前所做的任何路径设置都被用户删除了。我会在哪里尝试修复此设置?
非常感谢。我是个白痴。
我需要使用虚拟主机配置 nginx。但是当我尝试启动 ngnix 时,它失败,提示进程已在使用端口 80。我如何找出哪个进程正在使用端口 80 并杀死它,以便我可以启动 nginx?
更新:
vehico@metaiot:~$ netstat -tulpn
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN
Run Code Online (Sandbox Code Playgroud) 我正在考虑在 m1.small 实例上运行 nginx。我注意到在市场上您可以部署 ami,但每小时的费用为 0.024 美元。我虽然 nginx 是一个开源、免费的网络服务器。这个额外收费的原因是什么?
<Files urllist.txt>
order allow,deny
Allow from xx.xx.91.29
</Files>
Run Code Online (Sandbox Code Playgroud) 我最近在我的 Nginx 服务器上配置了 HTTPS,但是我认为在 URL ( http/ https) 中显示协议很难看。我很好奇是否有办法将协议隐藏在地址栏中,同时仍然保持 HTTPS 安全性。
目前我的 URL 看起来像:
https://example.com
但我希望它看起来像example.com.
非常感谢任何输入!
nginx ×13
apache-2.2 ×2
rewrite ×2
.htaccess ×1
amazon-ec2 ×1
django ×1
email ×1
email-server ×1
firewall ×1
gunicorn ×1
https ×1
iptables ×1
linux ×1
optimization ×1
php ×1
python ×1
redis ×1
ssl ×1
ubuntu ×1
users ×1
virtualhost ×1
vps ×1