标签 运维 下的文章

Nginx或Apache通过反向代理配置wss服务

为不影响网站正常业务,使用 xx.com/wss 作为代理入口,即客户端连接地址为:wss://xx.com/wss

nginx配置:

server {
  listen 443;
 
  ssl on;
  ssl_certificate /etc/ssl/server.pem;
  ssl_certificate_key /etc/ssl/server.key;
  ssl_session_timeout 5m;
  ssl_session_cache shared:SSL:50m;
  ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
 
  location /wss
  {
    proxy_pass http://127.0.0.1:2345;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Real-IP $remote_addr;
  }
  
  # location / {} 站点的其它配置...
}

apache配置:
需开启proxy_wstunnel_module模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

#extra/httpd-ssl.conf
DocumentRoot "/网站/目录"
ServerName 域名
 
# Proxy Config
SSLProxyEngine on
 
ProxyRequests Off
ProxyPass /wss ws://127.0.0.1:2345
ProxyPassReverse /wss ws://127.0.0.1:2345
 
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile /server/httpd/cert/your.pem
# 证书私钥配置
SSLCertificateKeyFile /server/httpd/cert/your.key
# 证书链配置,
SSLCertificateChainFile /server/httpd/cert/chain.pem

Let’s Encrypt 证书自动更新

Let’s Encrypt 每次申请仅3个月有效期
更新命令:certbot renew

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
0 0 1 */2 * certbot renew --quiet --force-renewal

certbot安装
yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
执行certbot certonly测试安装是否正确

PS:我也是随便复制的,只是想到了Let’s Encrypt的自动更新便百度了一下 :)

git直接push提交代码到线上生产环境

为方便开发过程中随时预览线上效果,需考虑git提交数据时直接将代码同时push到线上生产环境中。

  1. project.git/hooks新建post-receive

    #!/bin/sh
    git --work-tree=/www/project --git-dir=/data/git/project.git checkout -f

  2. chown +x post-receive
  3. 注意赋予project项目目录git写入权限

linux 打包压缩命令

linux 打包压缩命令

tar命令
tar [-cxtzjvfpPN] 文件与目录

-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
-z :gzip
-j :bzip2
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名不要再加参数!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!

- 阅读剩余部分 -

linux下查看apache,mysql,php的编译参数

1、查看linux的内核版本,系统信息,常用的有四种办法:

uname -a

more /etc/issue

cat /proc/version

more /etc/redhat-release

2、nginx编译参数:

/usr/local/nginx/sbin/nginx -V

3、apache查看版本编译参数

apache版本:

httpd -v

apache编译参数:

cat /usr/local/apache2/build/config.nice

4、查看php版本及编译参数

php编译参数:

/usr/local/php/bin/php -i |grep configure

php -v

5、查看mysql版本及参数

查看mysql版本:

mysql -v 或者是--help|grep Distrib来查看;

进入数据库

select version(); 或者status;或者/s;

mysql编译参数:

cat "/usr/local/mysql/bin/mysqlbug"|grep configure

linux搭建svn服务器 多项目管理

以前全栈也懒得用版本管理,最近同事想备份代码求心安,索性搭一个svn,别问我为啥不用git,同事喜欢图形~

yum install subversion mod_dav_svn

mkdir -p /www/svn/project1 /www/svn/project2
svnadmin create /www/svn/project1[project2]

cd /www/svn/project/conf

vi passwd

[users]
icecry=icecry

vi authz

[aliases]

[groups]

[/]
icecry=rw
* =

vi svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

[sasl]
# use-sasl = true
# min-encryption = 0
# max-encryption = 256

启动
svnserve -d -r /www/svn

查看
ps -ef|grep svn
netstat -ln |grep 3690

关闭
killall svnserve