CMZENO

服务器
服务器

Proxmox VE同时配置NAT共享IP和独立IP虚拟机

本文内容 配置桥接网卡,使Proxmox VE(PVE)可以同时创建NAT虚拟机和独立IP虚拟机,同时可以使用脚本映射NAT虚拟机的端口到外网 前言 有台5IP的机器,虽然配置不怎么样,但是也开了不少虚拟机,可用的4个IP挪来挪去着实不够用,遂产生了开NAT虚拟机的想法。 但是能开NAT虚拟机的同时,独立IP的机器也要能开通,毕竟有些服务转发起来也蛮麻烦的。 请教了一下谷姓同学,鼓捣了一下,测试可行,作为备忘,记录如下: 方法 1、桥接网卡配置 编辑网卡文件 nano /etc/network/interfaces 内容如下: # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* auto lo iface lo inet loopback allow-hotplug enp4s0 iface enp4s0 inet manual auto vmbr0 iface vmbr0 inet static address 111.1.11.130 netmask 255.255.255.248 gateway 111.1.11.129 bridge-ports enp4s0 bridge-stp off bridge-fd 0 auto vmbr1 iface vmbr1 inet static address 192.168.1.1 netmask 255.255.255.0 bridge_ports none bridge_stp off bridge_fd 0 post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up bash /root/iptables.config.sh post-up iptables -t nat -A POSTROUTING -s '192.168.1.0/24' -o vmbr0 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '192.168.1.0/24' -o vmbr0 -j MASQUERADE 物理机的网卡名为enp4s0,vmbr0为独立IP虚拟机的桥接网卡,自行修改为正确的信息;vmbr1为NAT虚拟机的桥接网卡,可以使用192.168.1.2-255这些内网IP。 2、新建虚拟机 开通独立IP虚拟机的时候桥接网卡选择vmbr0,NAT虚拟机选择vmbr1,如图所示 安装完成后,配置网卡信息,IP地址配置为内网IP地址,如图所示 配置完成后测试,使用Proxmox VNC功能登录虚拟机,测试可以正常联网 3、NAT转发 很多时候,NAT虚拟机单单能连接外部网络是不够的,还需要外部网络能够访问到虚拟机内部的服务,比如ssh,rdp等。 端口映射可以使用iptables来完整,已经有大佬写了方便的脚本,点我下载 脚本内容: iptables.sh #! /bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH #ConfFile iptablesconf='/root/iptables.config.sh' function rootness(){ if [[ $EUID -ne 0 ]]; then echo "脚本需要以ROOT权限运行!" exit 1 fi } function conf_list(){ cat $iptablesconf } function conf_add(){ if [ ! -f $iptablesconf ];then echo "找不到配置文件!" exit 1 fi echo "请输入虚拟机的内网IP" read -p "(Default: Exit):" confvmip [ -z "$confvmip" ] && exit 1 echo echo "虚拟机内网IP = $confvmip" echo while true do echo "请输入虚拟机的端口:" read -p "(默认端口: 22):" confvmport [ -z "$confvmport" ] && confvmport="22" expr $confvmport + 0 &>/dev/null if [ $? -eq 0 ]; then if [ $confvmport -ge 1 ] && [ $confvmport -le 65535 ]; then echo echo "虚拟机端口 = $confvmport" echo break else echo "输入错误,端口范围应为1-65535!" fi else echo "输入错误,端口范围应为1-65535!" fi done echo while true do echo "请输入宿主机的端口" read -p "(默认端口: 8899):" natconfport [ -z "$natconfport" ] && natconfport="8899"…

2023年1月30日 0comments 178hotness 0likes zeno Read all
服务器

宝塔Nginx环境安装pagespeed模块加速网站以及配置WebP格式图片加速方法

一、说明 本文内容:宝塔面板下为nginx安装ngx_pagespeed模块并配置WebP图片加速的方法,理论上非宝塔环境也适用,加模块使用命令行进行编译即可 二、前言 博客文章的图片太多,总觉得加载慢,服务器带宽和线路不能动的前提下,只能考虑对图片进行优化了。查了一下,发现WebP格式的图片很有优势,主流的浏览器也支持,遂有了本文。 三、铺垫 WebP是一种同时提供了有损压缩与无损压缩的图片文件格式,目标是减少文件大小,但达到和JPEG格式相同的图片质量,理论上能够在很大程度上缩小图片文件的大小,以节省服务器带宽,减少传输时间。 Ngx-pagespeed是一个免费的开源Nginx模块,可用于加快网站速度并减少页面加载时间。它可以在无需修改网站内容的前提下,对网站进行优化。使用者可以使用Ngx-pagespeed模块轻松优化各种文件,例如CSS,HTML,png和jpg,它可以自动将图片文件转换成WebP格式来呈现给访客,这个是我目前最需要的。 服务器环境 Centos7 已安装 宝塔面板 PHP7.2 四、开始干活 1.安装依赖 yum install gcc cmake unzip wget gcc-c++ pcre-devel zlib-devel -y 2.下载ngx_pagespeed wget https://github.com/apache/incubator-pagespeed-ngx/archive/v1.13.35.2-stable.tar.gz tar -xvzf v1.13.35.2-stable.tar.gz #解压文件 这里下载的是文章发布时最新的稳定版,如果想要最新的版本可以访问 https://github.com/apache/incubator-pagespeed-ngx/releases 3.下载PageSpeed优化库 cd incubator-pagespeed-ngx-1.13.35.2-stable #进入刚刚解压的文件夹 wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz #下载最新版的优化库 tar -xvzf 1.13.35.2-x64.tar.gz #解压优化库 4.编译模块 进入宝塔面板,按照图片的顺序编译安装nginx,如图所示 点击添加自定义模块,自定义模块的名称和描述可以随便写 模块参数填写格式如下: --add-module=/root/incubator-pagespeed-ngx-1.13.35.2-stable 其中,/root/incubator-pagespeed-ngx-1.13.35.2-stable是下载的ngx_pagespeed模块的位置 如图所示 提交之后,记得勾选添加的自定义模块,然后提交编译,如图所示 5.配置和开启ngx_pagespeed模块 编译安装成功后,可以在命令行中输入 nginx -V 查看是否编译成功,如图红线位置,可以看到ngx_pagespeed已经安装成功 这时需要开启模块,进入“网站”,然后选择要开启模块的域名,点击域名旁边的设置,如图所示,将配置内容输入到红线下方的位置 配置内容如下,可以自行调整 ####基本设置###### pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache; # 禁用CoreFilters pagespeed RewriteLevel PassThrough; # 启用压缩空白过滤器 pagespeed EnableFilters collapse_whitespace; # 启用JavaScript库卸载 pagespeed EnableFilters canonicalize_javascript_libraries; # 把多个CSS文件合并成一个CSS文件 pagespeed EnableFilters combine_css; # 把多个JavaScript文件合并成一个JavaScript文件 pagespeed EnableFilters combine_javascript; # 删除带默认属性的标签 pagespeed EnableFilters elide_attributes; # 改善资源的可缓存性 pagespeed EnableFilters extend_cache; # 更换被导入文件的@import,精简CSS文件 pagespeed EnableFilters flatten_css_imports; pagespeed CssFlattenMaxBytes 5120; # 延时加载客户端看不见的图片 pagespeed EnableFilters lazyload_images; # 启用JavaScript缩小机制 pagespeed EnableFilters rewrite_javascript; # 预解析DNS查询 pagespeed EnableFilters insert_dns_prefetch; # 重写CSS,首先加载渲染页面的CSS规则 pagespeed EnableFilters prioritize_critical_css; # Example 禁止pagespeed 处理/wp-admin/目录(可选配置,可参考使用) pagespeed Disallow "*/wp-admin/*"; #######图片处理配置######## # 延时加载图片 pagespeed EnableFilters lazyload_images; # 不加载显示区域以外的图片 pagespeed LazyloadImagesAfterOnload off; pagespeed LazyloadImagesBlankUrl "https://www.cmzeno.com/xxx.png"; # 启用图片优化机制(主要是 inline_images, recompress_images, convert_to_webp_lossless(这个命令会把PNG和静态Gif图片转化为webp), and resize_images.) pagespeed EnableFilters rewrite_images; #组合 convert_gif_to_png, convert_jpeg_to_progressive, convert_jpeg_to_webp, convert_png_to_jpeg, jpeg_subsampling, recompress_jpeg, recompress_png, recompress_webp, #strip_image_color_profile, and strip_image_meta_data. pagespeed EnableFilters recompress_images; # 将JPEG图片转化为webp格式 pagespeed EnableFilters convert_jpeg_to_webp; # 将动画Gif图片转化为动画webp格式 pagespeed EnableFilters convert_to_webp_animated; # 图片预加载 pagespeed EnableFilters inline_preview_images; # 移动端图片自适应重置 pagespeed EnableFilters resize_mobile_images; pagespeed EnableFilters responsive_images,resize_images; pagespeed EnableFilters insert_image_dimensions; pagespeed EnableFilters resize_rendered_image_dimensions; pagespeed EnableFilters strip_image_meta_data; pagespeed EnableFilters convert_jpeg_to_webp,convert_to_webp_lossless,convert_to_webp_animated; pagespeed EnableFilters sprite_images; pagespeed EnableFilters convert_png_to_jpeg,convert_jpeg_to_webp; # 让JS里引用的图片也加入优化 pagespeed InPlaceResourceOptimization on; pagespeed EnableFilters in_place_optimize_for_browser; location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; } location ~ "^/ngx_pagespeed_static/" { } location ~ "^/ngx_pagespeed_beacon" { } 更多配置请参考 https://www.modpagespeed.com/doc/configuration 保存,重启nginx,在命令行输入 curl -I -p http://www.cmzeno.com 请将 http://www.cmzeno.com 替换成你的域名,如图红线,我们可以看到,模块已经开启成功了 五、查看效果 演示站为wordpress博客程序,以默认主题的背景图片为例子,可以看到,在开启前,如图所示,图片是jpg格式 在开启后,图片被自动转换为了WebP格式 转换前图片大小为115KB,转换后变成了58KB,缩小了几乎一半的体积,效果还是很好的 我肉眼看不出啥变化,另外我在每次截图保存之后,图片都会丢到tinypng压缩一下,尽可能的缩小图片体积。 六、参考 https://www.howtoforge.com/tutorial/install-nginx-with-ngx-pagespeed-on-centos-7/ https://blog.csdn.net/cslxydn/article/details/98958841 https://www.modpagespeed.com/doc/configuration

2023年1月30日 0comments 257hotness 1likes zeno Read all

zeno

This person is a lazy dog and has left nothing

近期评论
Avatar photo
A WordPress Commenter Published at 2 months ago(01 01202313112 30 30am23) Hi, this is a comment. To get started with moderat...

COPYRIGHT © 2023 CMZENO. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang