Articles of linux

如何在Nginx重写中如何转义哈希符号“#”字符?

我正在尝试在nginx中为以下url添加重写规则http://www.example.com/gallery/how-make-your-own-cider#step-4-juice-and-strain,但没有任何反应,我怀疑它是因为散列符号。 请问我该如何转义nginx重写中的散列符号字符。 rewrite ^/gallery/how-make-your-own-cider#step-4-juice-and-strain http://www.example.com/article/recipe-how-make-your-own-cider permanent;

Ubuntu – 将具有目的地subdomain.example.com的数据包转发到内部LAN主机

我有一个Ubuntu服务器作为我的networking服务多个服务的网关。 我希望将这些服务分成多个Ubuntu服务器(物理和/或虚拟),以获得更多的计算能力和更好的组织。 我只有一个公共IP可用。 DNS被configuration并回答“example.com” 请参阅下面的图表了解更多信息: /\ —————– / \ | | / \ <—————–> | Remote Host | / \ | | /Internet\ —————– \ / \ / \ / \ / \/ | | ——-eth0—— | 1.2.3.4 | | Ubuntu Server | | Gateway | | 192.168.0.1 | ——-eth1—— | | | —————– | […]

openVPN服务器不会通过netcat侦听客户端

我正在为一个客户端(本例中是我的电脑)和服务器(aws服务器)之间build立一个VPN连接的ROS项目。 我使用openVPN创build一个tun0接口,通过它可以使服务器和客户端都能够相互ping通(10.8.0.1是服务器的IP地址,10.8.0.2是客户端的地址)。 但是,作为进一步的testing,我检查了netcat的结果,发现运行: netcat -l 1234 在客户端和: netcat 10.8.0.2 1234 在服务器上,我能够发送数据。 而相反的configuration不起作用。 我不明白,如果这是一个特定的问题涉及server.conf openVPN的configuration文件的服务器,或者如果我必须实施某种forms的转发规则。 server.conf文件如下: port 1194 proto udp dev tun sndbuf 0 rcvbuf 0 ca ca.crt cert server.crt key server.key dh dh.pem auth SHA512 tls-auth ta.key 0 topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 172.31.0.2" keepalive 10 […]

托pipenetworking应用程序的服务器的用户和文件权限设置的最佳做法是什么?

我在我的VPS上部署了许多Web应用程序和服务,包括Jenkins,Node.js应用程序,P2P文件同步服务等,但是我遇到了一些问题: 我使用NginX进行反向代理,其工作人员以用户www-data身份运行。 我听说这个用户应该被授予尽可能less的权限。 它没有shell,其主目录是/var/www 。 所以我创build了另一个用户www-admin进行web应用pipe理和部署。 那么目录/var/www权限设置是什么? 对于www-data应该是可读的,对于www-admin可写的。 我应该使用用户www-data来运行所有的Web服务吗? 如果是这样, www-data应该被授予目录/var/www (这是它的主目录)的写权限,因为我使用PM2进行进程pipe理,它将运行时数据保存在$HOME/.pm2 。 允许www-data写入目录/var/www是否危险? 我听说www-data不应该在/var/www上被授予写权限,因为恶意的web应用程序可能会威胁到其他web应用程序。 我使用Jenkins作为CI,它以用户jenkins运行。 这使事情更复杂。 例如,当使用Jenkins部署Node.js应用程序时,新的PM2实例将以用户jenkins开始运行。 总之,如何设置用户,用户组,目录权限和进程运行用户,以安全的方式妥善pipe理我的Web服务?

OSX + Virtualbox + Centos + Docker … + Centos无法正常工作

我们正在使用Docker来容纳一个Web应用程序。 一切都在生产系统上完美运行,但我们的开发环境是一个真正的痛苦。 堆栈如下,我想这是按照层次顺序。 Mac OSX,运行: Vagrant +使用共享文件夹(rsync)在guest虚拟机上更新此虚拟机 Guest虚拟机:Centos 7,运行docker并使用docker-compose来安装一个卷来共享代码库 因此,从dev环境向实际运行的代码库传播更改的总path来自编辑器,在virtualbox vm中通过rysnc进行更新,然后通过已安装的卷更新Docker容器的代码库。 这里面临的挑战是,virtualboxe共享文件夹的同步不是双向的,如果我使用nano或vim更新guest虚拟机,它将不会在主机上更新。 有时候这个设置也完全无法更新Docker中的挂载音量,我不知道为什么。 任何人都可以在这里提出更好的设置 我们没有直接从OSX运行docker vm的原因是因为docker在OSX上的容器中与127.0.0.1不能很好地协作。 因此需要在OSX之上启动一个Linux VM .. 🙁

如何debugging含有失败子查询的INSERT语句的SQL脚本?

我在我的数据库中有三个表: tbl_object , tbl_tag tbl_object_tag_xref 。 tbl_object和tbl_tag只有两列id和name 。 tbl_object_tag_xref将对象与标签进行匹配,反之亦然,具有列id , tbl_object_id和tbl_tag_id 。 tbl_object和tbl_tag表已经被填充了适当的数据。 只有tbl_object_tag_xref表仍然是空的。 我有一个脚本parsing各种数据源,并以CSV格式输出这些外部参照: "object1","tag1" "object1","tag2" "object2","tag2" … 由于脚本可能无法parsing,并产生一些错误的行,这个输出然后由人手validation和纠正(这里的真实数据要复杂得多,而且不能自动执行)。 更正后,数据转换为SQL查询: INSERT INTO tbl_object_tag_xref VALUES (NULL, (SELECT id FROM tbl_object WHERE name = 'object1'), (SELECT id FROM tbl_tag WHERE name = 'tag1')) INSERT INTO tbl_object_tag_xref VALUES (NULL, (SELECT id FROM tbl_object WHERE name = 'object1'), […]

NGINX试图下载PHP文件

我试图让Mantis使用来自官方Arch仓库(Mantis来自AUR)的php-fpm在NGinx上运行。 每当我去服务器地址(192.168.1.x),我被要求下载在目录的根目录的admin文件夹中的install.php文件。 这是我的nginx.conf: user http; worker_processes auto; worker_cpu_affinity auto; #pcre_jit on; events { worker_connections 2048; } http { include mime.types; default_type application/octet-stream; # sendfile on; # tcp_nopush on; send_timeout 20; # aio threads; server_tokens off; # Security: Disables nginx version in error messages and in the “Server” response header field. charset utf-8; # Force usage […]

Virtnetwork无法启动Virtualizor KVM

我的虚拟networking有问题。 我已经在主设置Virtualizor上设置了正确的networking接口,但它说 / etc / sysconfig /:错误获取接口信息:找不到设备错误:找不到IP地址。 当我尝试跑步 service virtnetwork start 有人可以帮助我吗? 这里是我的networking接口“ifcfg-ens9” NAME="ens9" DEVICE="ens9" ONBOOT=yes NETBOOT=yes UUID="805c90c6-a8d2-49f1-8707-44696466a9fa" IPV6INIT=yes BOOTPROTO=none TYPE=Ethernet DNS1=127.0.0.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPADDR=xxx.xxx.187.234 PREFIX=29 GATEWAY=xxx.xxx.187.233 IPV6_PEERDNS=yes IPV6_PEERROUTES=yes 期待着解决scheme。 我不知道上面的设置是错的。

当apache2正在运行时,SSH连接断开

我的客户端运行2台在SUSE Linux 11 SP2上运行的服务器。 两台服务器都configuration为主动 – 被动HA服务器,因此完全相同。 Bacula也安装在两台服务器上用于备份,为了方便用户查看备份状态,我在两台服务器上都configuration了bacula-web。 我使用apache2服务bacula-web,一切运行良好。 当我必须configuration一台服务器(服务器1)作为clamAV服务器时,问题就开始发生。 我为apache2创build了一个虚拟主机来为clamAV cdiff文件提供服务。 重新启动apache2后,大约20分钟左右,我的SSH连接(PuTTY)将被断开(networking错误:软件导致连接中止)。 尝试重新启动SSH会话将在input密码后立即失败。 会话将挂起并断开连接。 我不知道是什么原因导致了这种行为,但只有在apache2正在运行的情况下才能启动clamAV主机。 如果apache2只运行bacula-web报告页面,一切都很好。 更糟糕的是,它正在影响同一networking中的其他服务器。 总结一下: apache2在服务器1和2上运行 服务器1上的apache2提供bacula-web和clamAV 服务器2上的apache2只提供bacula-web 当apache2在服务器1上运行时,同一networking上的所有服务器都不能被访问(服务器2,并且在这篇文章中没有描述另一个服务器) closures服务器1上的apache2后,连接将立即恢复正常 我试图在不同于80的端口上运行apache,而且我不会遇到连接问题。 下面列出了Apache相关的configuration/模块。 让我知道是否有任何更多的信息需要。 谢谢。 /etc/apache2/vhosts.d#cat vhost.conf Servername xxxx DocumentRoot /srv/www/htdocs/clamav ErrorLog /var/log/apache2/clamav-error_log CustomLog /var/log/apache2/clamav-access_log combined HostnameLookups Off UseCanonicalName Off ServerSignature On <Directory "/srv/www/htdocs/clamav"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow […]

在安装SLES 12 sp2之后卸载SMB DVD

我通过SMB源安装了SLES 12,并希望在安装后卸载源。 我发现在重新启动机器时,DVD在第一次没有安装,但是在5-10秒之后,它会在我的桌面上显示挂载的DVD作为附加的截图。 我试图在YaST的xml文件中添加后脚本,但是当执行后脚本时,DVD尚未安装,因此不起作用。 如何在安装后自动卸载SMB源? 谢谢。 顺便说一下,如果你有兴趣,这里是我的后记。 eject mount_points=`mount | grep 'type iso' | awk '{print$1}'` for mount_point in ${mount_points} do loop_disks=`losetup | grep ${mount_point} | awk '{print$1}'` for loop_disk in ${loop_disks} do umount loop_disk done done