nginx源码编译安装+致远OAhttps部署
nginx安装部署及OAhttp和https反向代理设置
一、下载nginx及相关依赖文件包并检查gcc与gcc-c++是否安装
Nginx,参考下载链接(建议下载 stable version):http://nginx.org/en/download.html
nginx-sticky-module,参考下载链接:https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/downloads/
pcre,参考下载链接:https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
openssl,参考下载链接:https://www.openssl.org/source/
zlib,参考下载链接:https://zlib.net/
检查gcc与gcc-c++是否已安装
yum list installed | grep gcc gcc-c++
yum install -y perl perl-devel gcc gcc-c++
二、解压nginx安装包及相关以来二进制文件
将所有下载的二进制包和zip包上传至服务器二进制存放路径里进行解压,路径自建,本文档中所有建立的二进制文件存放路径为/seeyon/Nginx,安装路径为/seeyon/nginx。==注:存放路径和安装路径不可放在同一目录!==
解压二进制文件
tar -zxvf nginx-1.xx.x.tar.gz # x代表版本信息,已下载的各自版本为准;
tar -zxvf pcre-x.xx.tar.gz
tar -zxvf zlib-x.xx.xx.tar.gz
tar -zxvf openssl-x.x.x.tar.gz
unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
# 修改解压好的文件名,便于后续安装
mv nginx-1.xx.x nginx
mv pcre-x.xx pcre
mv zlib-x.xx.xx zlib
mv openssl-x.x.x openssl
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 nginx-sticky-module
提权文件夹权限
安装nginx
== 注如编译过程中遇到问题,自行百度解决 ==
三、配置nginx代理OAhttp服务
已nginx安装在/seeyon/nginx下为例,nginx配置文件位于/seeyon/nginx/conf/nginx.conf。配置文件内容如下:
worker_processes auto;
worker_rlimit_nofile 20960;
error_log logs/error.log crit;
events {
worker_connections 4096;
multi_accept on;
accept_mutex on;
accept_mutex_delay 500ms;
}
http {
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
access_log off;
include mime.types;
default_type application/octet-stream;
keepalive_timeout 300;
client_max_body_size 10240M;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 3;
gzip_types text/xml text/plain text/css text/javascript application/x-javascript
application/javascript application/xml;
gzip_disable "MSIE [1-6]\.";
upstream seeyon_v5_cluster{
sticky;
server 192.168.31.110:8080 max_fails=300 fail_timeout=30s; # 192.168.31.110为OA地址 8080为OA使用的端口
#server 192.168.0.2:80 max_fails=300 fail_timeout=30s;
}
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
proxy_pass http://seeyon_v5_cluster;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
# 修改配置文件后在nginx的启动目录下检查nginx.conf是否合理 seeyon/nginx/sbin ./nginx -t
配置开启https访问
==注意== 开启https需要购买证书,腾讯、阿里云等云服务器可以申请免费证书,如虚拟机等安装体验可使用openssl生成自签名证书,自签名证书可参考:nginx生成ssl证书 - me小怪兽 - 博客园 (cnblogs.com)
server {
listen 443 ssl;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on; #协议加密握手参数,建议必加,不然可能无法进行登录!!
location / {
proxy_pass http://seeyon_v5_cluster;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
}
# 修改配置文件后在nginx的启动目录下检查nginx.conf是否合理 seeyon/nginx/sbin ./nginx -t
OA配置https重定向
server {
listen 443 ssl;
server_name localhost; #域名或IP
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on; ssl协议握手参数,高版本OA必加
location / {
proxy_pass http://seeyon_v5_cluster;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_redirect off;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
}
}
server {
listen 80;
server_name localhost; #域名或IP
charset utf-8;
location / {
rewrite ^(.*)$ https://$host$1 permanent;
} #访问IP或域名按实际设置
}
# 修改配置文件后在nginx的启动目录下检查nginx.conf是否合理 seeyon/nginx/sbin ./nginx -t
OA配置文件修改ApacheJetspeed/conf下的==server.xml==,修改一下内容
<!--由于高版本OA使用tomcat有变化,需在该位置在增加https内容-->
原内容:
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false" errorReportValveClass="com.seeyon.tomcat.CustomErrorValue">
修改后内容:
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false" errorReportValveClass="com.seeyon.tomcat.CustomErrorValue">
增加下方对于
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https" httpsServerPort="4443"/> <!--端口基于上方https的配置端口,要进行一致-->。
重启OA服务
四、nginx常用命令
五、注册系统服务使用systemctl进行启动管理
创建服务脚本
vi /usr/lib/systemd/system/nginx.service
# 服务脚本内容
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/seeyon/nginx/logs/nginx.pid
ExecStartPre=/seeyon/nginx/sbin/nginx -t -c /seeyon/nginx/conf/nginx.conf
ExecStart=/seeyon/nginx/sbin/nginx -c /seeyon/nginx/conf/nginx.conf
ExecReload=/seeyon/nginx/sbin/nginx -s reload
ExecStop=/seeyon/nginx/sbin/nginx -s stop
ExecQuit=/seeyon/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载系统服务
设置nginx开机自启动
六、编译问题
如使用的openssl较高,例如openssl-3.3.1等或更高的版本,需要安装 Perl模块IPC::Cmd
,openssl-3.3.1编译需要此模块内容,否则编译过程报错。
解决方式:
在CPAN配置文件中添加多个镜像源,你可以通过以下几种方式实现,下面分别介绍不同方式的操作步骤。
推荐方式二
方式一:通过CPAN Shell交互添加
进入CPAN Shell:在终端中输入
cpan
并回车,即可进入CPAN交互界面。查看当前镜像源列表:在CPAN Shell中输入
o conf urllist
,回车后会显示当前配置的所有镜像源。添加新的镜像源:
若要将新镜像源添加到列表开头,使用
o conf urllist unshift '镜像源URL'
命令。例如添加清华大学的镜像源,命令为o conf urllist unshift 'https://mirrors.tuna.tsinghua.edu.cn/CPAN/'
。若要将新镜像源添加到列表末尾,使用
o conf urllist push '镜像源URL'
命令。例如添加中国科学技术大学的镜像源,命令为o conf urllist push 'https://mirrors.ustc.edu.cn/CPAN/'
。
保存配置:添加完所有需要的镜像源后,输入
o conf commit
保存对配置的修改。退出CPAN Shell:输入
quit
或q
退出CPAN交互界面。
方式二:直接编辑CPAN配置文件
定位配置文件:CPAN的配置文件通常是
~/.cpan/CPAN/MyConfig.pm
(在类Unix系统如Linux、macOS上);在Windows系统上,路径可能类似C:\Users\你的用户名\.cpan\CPAN\MyConfig.pm
。备份配置文件:为防止修改失误,在编辑前先备份该文件。
编辑配置文件:用文本编辑器打开
MyConfig.pm
,找到'urllist'
对应的部分,通常格式如下:
在方括号内按照需求添加新的镜像源URL,每个URL用单引号括起来,并用逗号分隔。例如添加阿里云和清华大学的镜像源:保存修改:完成镜像源添加后,保存配置文件。之后再次使用CPAN时就会使用新配置的多个镜像源。
通过上述方法,你可以方便地在CPAN配置文件中添加多个镜像源,提升模块下载的效率和稳定性。
CPAN配置完成后进行IPC::Cmd
模块安装
等待安装完成后在重新进行nginx的安装跟编译即可。
若安装编译过程遇到提示报错:ngx_http_sticky_module.c: error: 'ngx_http_headers_in_t' has no member named 'cookies'
等,则修改ningx-sticky-module源码包中的ngx_http_sticky_misc.c内容
修改完成后重新进行编译即可。
评论