安装编译工具及库文件

以便后续对nginx和相关工具进行编译

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel 

zlib与zlib-devel:具体zlib-devel是什么东西,我在网上找到了这样一段话:“devel包含普通包,只比普通包多了头文件。动态链接库的话两种包都有。编译的时候如果需要用到这个库,那么需要安装这个库的devel,因为需要头文件

我个人的理解是,有些程序,需要依赖一些第三方的东西才能使用,应用到我们当前的场景,就是,nginx安装时有些东西需要用到zlib-devel库,所以,我们要先安装zlib-devel,但是,zlib-devel依赖于zlib所以我们要先安装zlib

gcc-c++: 是一个编译器,大致分为两部分,一部分用来处理编译各种代码,将代码转为c代码,另一部分将得到的c代码进行编译转成电脑硬件相关的汇编或机器码等(类似于Java的一次编译处处运行)

libtool: 是一个通用库支持脚本(/usr/bin/libtool),将使用动态库的复杂性隐藏在统一、可移植的接口中。

openssl与openssl-devel:是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份

 

安装pcre:

官网下载链接: http://downloads.sourceforge.net/project/pcre/pcre

是一个Perl库,包括 perl 兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的

cd /usr/local/src
wget http://downloads.sourceforge.net/project/pcre/pcre/8.43/pcre-8.43.tar.gz

 解压pcre包:

tar -zxvf /usr/local/src/pcre-8.43.tar.gz

进入安装包,编译安装

cd /usr/local/src/pcre-8.43
./configure
make && make install

查看pcre版本:

pcre-config --version

  

安装nginx

 官网下载nginx:http://nginx.org/download

 在/usr/local中创建nginx目录,并进入其中下载nginx包

cd /usr/local
wget http://nginx.org/download/nginx-1.9.9.tar.gz

 解压安装包,得到nginx-1.9.9目录

tar zxvf nginx-1.20.1.tar.gz
mv nginx-1.20.1 nginx
cd nginx

 进入nginx-1.9.9目录,并使用之前安装的程序包编译(注意:命令路径必须和安装的pcre的存放路径版本一致

./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.43
make
make install

 安装成功,查看nginx版本:

/usr/local/webserver/nginx/sbin/nginx -v

 

最后简单的示例一下nginx的配置,找到nginx.conf文件(一般都在nginx安装目录下的conf目录中),我的文件路径为:/usr/local/nginx/nginx-1.9.9/conf/nginx.conf 所以命令如下:

vim /usr/local/webserver/nginx/conf/nginx.conf

 详细的nginx配置,参考链接:https://www.cnblogs.com/fuhui-study-footprint/p/12979513.html

下面验证nginx.conf文件是否正确:

 /usr/local/webserver/nginx/sbin/nginx -t

 如下则表示文件正确:

 

 最后启动、关闭、重新载入配置文件、重启nginx命令:

/usr/local/webserver/nginx/sbin/nginx                        # 启动nginx
/usr/local/webserver/nginx/sbin/nginx -s reload              # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen              # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop                # 停止 Nginx        

 查看nginx是否在运行状态:

ps -ef | grep nginx

 请求服务器,可以直接请求域名,或端口:

 

配置tomcat代理:

监听端口,配置端口代理请求的路径

worker_processes 1; #可以设置和服务器核数相同的数

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

server {
listen 80;
server_name localhost;

#charset koi8-r;

 

location = / {
root html;
index index.html index.htm;
#proxy_pass http://127.0.0.1:8080;
proxy_pass http://127.0.0.1:8080/web/index.html;
}

# 访问static中的文件,因为有时候前端访问static文件中的时候是不加项目名,但是在服务器上,我们需要知道项目的路径所以要加上tomcat的路径
location ^~ /static/ {
root /webroot/static/;
proxy_pass http://127.0.0.1:8080/RoomHomeWeb/static/;
}

#静态文件配置。此处已后缀名方式匹配静态文件,但是无法添加路径,否则会报错
location ~ \.(gif|jpg|png|js|css)$ 
{
proxy_pass http://127.0.0.1:8080;
}

# 下载页
location ~ \.html$ {
proxy_pass http://127.0.0.1:8080;
}

# 下载页静态文件
location ^~ /assets/ {
proxy_pass http://127.0.0.1:8080/assets/;
}

# 下载页
location ~ \.apk$ {
proxy_pass http://127.0.0.1:8080;
}

#admin
location /admin/ {
proxy_pass http://127.0.0.1:8080;
}

#adminchild
location /stores/ {
proxy_pass http://127.0.0.1:8080;
}

# 编辑管理
location /editor/ {
proxy_pass http://127.0.0.1:8080;
}

# 客服管理
location /customer/ {
proxy_pass http://127.0.0.1:8080;
}

#api
location /api/ {
proxy_pass http://127.0.0.1:9094;
}

location = /50x.html {
root html;
}

}

 

 

server {
listen 443;
server_name www.hzyit.cn;

underscores_in_headers on;#https请求默认会拦截header中的内容,需要配置underscores_in_headers进行处理

ssl on;
root html;
index index.html index.htm;
ssl_certificate /home/cert/4643252_www.hzyit.cn.pem; #ssl证书
ssl_certificate_key /home/cert/4643252_www.hzyit.cn.key; #ssl证书秘钥
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:9098; #https域名对应的tomcat
index index.html index.htm;
client_max_body_size 1000M;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffer_size 32k;
proxy_buffers 32 256k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;
}
}

}

如果配置无效

1、检查文件下方是否包含includ 引用了其他文件被,其他文件覆盖
2、检查路径是否正确,端口是否开放,配置是否正确

3、使用 /usr/local/webserver/nginx/sbin/nginx -t 命令,查看你修改的文件是否和 该命令返回的路径一样,如果不一样,修改该命令返回路径的nginx.conf文件

 

posted on 2019-12-04 14:21  浅灰色的记忆  阅读(777)  评论(0编辑  收藏  举报