中标麒麟7操作系统安装Nginx

一、准备工作

各安装包下载:
1.nginx安装包
2.依赖包:gzip模块需要zlib库、rewrite模块需要pcre库、ssl功能需要openssl库
3.打包下载地址:https://download.csdn.net/download/shanghailuchaochao/11242658
4.依赖库安装确认:
yum install perl 
yum install gcc
yum install gcc-c++
yum -y install net-tools

二、开始安装

将下载下载的包放到 /home/nginx_install
1.安装openssl-1.0.2o.tar.gz

cd /home/nginx_install

tar -zxvf openssl-1.0.2o.tar.gz

cd openssl-1.0.2o

#prefix配置安装路径 

./config --prefix=/opt/ldkjdata/nginx/openssl-1.0.2o 

make

make install

2.安装zlib-1.2.8.tar.gz

cd /home/nginx_install

tar -zxvf zlib-1.2.11.tar.gz 

cd zlib-1.2.11 

./configure --prefix=/opt/ldkjdata/nginx/zlib-1.2.11 

make 

make install

3.安装pcre-8.38.tar.gz

cd /home/nginx_install 

tar -zxvf pcre-8.38.tar.gz 

cd pcre-8.38

./configure --prefix=/opt/ldkjdata/nginx/pcre-8.38 

make 

make install

4.安装nginx

cd /home/nginx_install 

tar -zxvf nginx-1.14.0.tar.gz 

cd nginx-1.14.0

./configure --with-pcre=../pcre-8.38 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.2o --with-http_ssl_module --prefix=/opt/ldkjdata/nginx/nginx-1.14.0

make

make install

5.检测是否安装成功

cd /opt/ldkjdata/nginx/nginx-1.14.0/sbin
./nginx -t
#看到如下提示,表示安装成功。
nginx: the configuration file /opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf syntax is ok
nginx: configuration file /opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf test is successful

6.Nginx启动和端口查看

cd /opt/ldkjdata/nginx/nginx-1.14.0/sbin
./nginx 启动
./nginx -s stop 停止
./nginx -s reload 修改配置后重新加载配置
netstat -ntlp 查看tcp是否正常监听

三、配置转发例子

配置文件:/opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf

1.简单实例

1.需求
短信服务器列表三台,提供服务的地址如下:

http://192.168.88.21:8091/smsserver/services/sendSms?wsdl
http://192.168.88.22:8091/smsserver/services/sendSms?wsdl
http://192.168.88.23:8091/smsserver/services/sendSms?wsdl
彩信服务器列表三台,提供服务的地址如下:

http://192.168.88.21:8092/msserver/services/sendMms?wsdl
http://192.168.88.22:8092/mmsserver/services/sendMms?wsdl
http://192.168.88.23:8092/mmsserver/services/sendMms?wsdl 

Nginx安装在另外一台单独机器上(公网IP为public_ip),对外提供服务地址如下:
http://public_ip:8090/smsserver/services/sendSms?wsdl 短信发送服务
http://public_ip:8090/mmsserver/services/sendMms?wsdl 彩信发送服务

2.对于以上需求,配置/opt/nginx-1.8.0/conf/nginx.conf如下:
#user nobody; 
worker_processes 1; 

#error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 

#pid logs/nginx.pid; 

events { 
worker_connections 1024; 
} 

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

#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
# '$status $body_bytes_sent "$http_referer" ' 
# '"$http_user_agent" "$http_x_forwarded_for"'; 

#access_log logs/access.log main; 

sendfile on; 
#tcp_nopush on; 

#keepalive_timeout 0; 
keepalive_timeout 65; 
#设定请求缓冲, start 
client_header_buffer_size 1k; 
large_client_header_buffers 4 4k; 
#设定请求缓冲, end 

#设定提供服务的服务器,start 
#短信发送服务器 
upstream smsserver{ 
#weigth 表示权重,权值越大,分配几率越大 
#max_fails 当有max_fails个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查 
#fail_timeout 在以后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器 
server 192.168.88.21:8091 weight=5 max_fails=5 fail_timeout=600s; 
server 192.168.88.22:8091 weight=5 max_fails=5 fail_timeout=600s; 
server 192.168.88.23:8091 weight=5 max_fails=5 fail_timeout=600s; 
} 
#彩信发送服务器 
upstream mmsserver{ 
#weigth 表示权重,权值越大,分配几率越大 
#max_fails 当有max_fails个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查 
#fail_timeout 在以后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器 
server 192.168.88.21:8092 weight=5 max_fails=5 fail_timeout=600s; 
server 192.168.88.22:8092 weight=5 max_fails=5 fail_timeout=600s; 
server 192.168.88.23:8092 weight=5 max_fails=5 fail_timeout=600s; 
} 
#设定提供服务的服务器,end 

#gzip on; 

server { 
listen 8090; 
server_name localhost; 
#设定请求转发规则, start 
#规则采用最长匹配,/smsserver/*优先匹配/smsserver,/mmsserver/*优先匹配/mmsserver,/aaaaaaaa/*因为没有任何匹配,最后匹配到/ 
#规则一 
location / { 
proxy_pass http://localhost:80; 
} 
#规则二 
location /smsserver { 
proxy_pass http://smsserver; 
} 
#规则三 
location /mmsserver { 
proxy_pass http://mmsserver; 
} 
#设定请求转发规则, end 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
root html; 
} 
} 

server { 
listen 80; 
server_name localhost; 
#设定请求转发规则, start 
location / { 
#定义服务器的默认网站根目录位置 
root /home/work/statichtml/index.html; 
#定义首页索引文件的名称 
#index index.php index.html index.htm; 
#请求转向orderServer定义的服务器列表 
# proxy_pass http://server; 

#以下是一些反向代理的配置可删除. 
# proxy_redirect off; 
# proxy_set_header Host $host; 
# proxy_set_header X-Real-IP $remote_addr; 
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
#允许客户端请求的最大单文件字节数 
# client_max_body_size 10m; 
#缓冲区代理缓冲用户端请求的最大字节数, 
# client_body_buffer_size 128k; 
#nginx跟后端服务器连接超时时间(代理连接超时) 
# proxy_connect_timeout 90; 
#后端服务器数据回传时间(代理发送超时) 
# proxy_send_timeout 90; 
#连接成功后,后端服务器响应时间(代理接收超时) 
# proxy_read_timeout 90; 
#设置代理服务器(nginx)保存用户头信息的缓冲区大小 
# proxy_buffer_size 4k; 
#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 
# proxy_buffers 4 32k; 
#高负荷下缓冲大小(proxy_buffers*2) 
# proxy_busy_buffers_size 64k; 
#设定缓存文件夹大小,大于这个值,将从upstream服务器传 
# proxy_temp_file_write_size 64k; 
} 
#设定请求转发规则, end 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
root html; 
} 
} 
} 

2.暴露接口,但隐藏web项目的根目录

上面例子有个问题是,直接将我整个web根目录smsserver和mmsserver暴露到公网了,其实我的目的只是想暴露两个接口地址,所以6有待优化,举个例子如下:
1.需求
接口服务器列表两台台,提供服务的地址如下:
接口一:
http://192.168.88.21:8082/myweb/interface/getData
http://192.168.88.22:8082/myweb/interface/getData
接口二:
http://192.168.88.21:8082/myweb/interface/sendData
http://192.168.88.22:8082/myweb/interface/sendData

Nginx安装在另外一台单独机器上(公网IP为public_ip),对外提供服务地址如下: 
http://public_ip:8081/myweb/interface/getData 接口一 
http://public_ip:8081/myweb/interface/sendData 接口二
2.对于以上需求,配置/opt/nginx-1.8.0/conf/nginx.conf如下:

#user nobody; 
worker_processes 1; 
#error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 
#pid logs/nginx.pid; 
events { 
worker_connections 1024; 
} 
http { 
include mime.types; 
default_type application/octet-stream; 

#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
# '$status $body_bytes_sent "$http_referer" ' 
# '"$http_user_agent" "$http_x_forwarded_for"'; 

#access_log logs/access.log main; 

sendfile on; 
#tcp_nopush on; 

#keepalive_timeout 0; 
keepalive_timeout 65; 
#设定请求缓冲, start 
client_header_buffer_size 1k; 
large_client_header_buffers 4 4k; 
#设定请求缓冲, end 

#设定提供服务的服务器,start 
#我的接口服务器,两台 
upstream myweb{ 
#weigth 表示权重,权值越大,分配几率越大 
#max_fails 当有max_fails个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查 
#fail_timeout 在以后的fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器 
server 192.168.88.21:8082 weight=5 max_fails=5 fail_timeout=600s; 
server 192.168.88.22:8082 weight=5 max_fails=5 fail_timeout=600s; 
} 
#设定提供服务的服务器,end 

#gzip on; 

server { 
listen 80; 
server_name localhost; 
#设定请求转发规则, start 
#规则采用最长匹配,即长度最长优先匹配,最后不匹配的走/进行匹配 
#规则一 
location / { 
root html; 
index index.html index.htm; 
} 
#设定请求转发规则, end 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
root html; 
} 
} 

server { 
listen 8081; 
server_name localhost; 
#设定请求转发规则, start 
#规则采用最长匹配,即长度最长优先匹配,最后不匹配的走/进行匹配 
#规则一 
location / { 
root html; 
index index.html index.htm; 
} 
#规则二,查询接口一 
location /myweb/interface/getData { 
proxy_pass http://myweb; 
#转发请求的原IP地址,程序中通过request.getHeader("Proxy-Client-IP")获得ip 
proxy_set_header Host $host; 
#如果是有涉及redirect的服务,一定要加上端口8081,否则默认tomcat在redirect时候默认找80端口 
#proxy_set_header Host $host:8081; 
proxy_set_header Proxy-Client-IP $remote_addr; 
} 
#规则三,查询接口二 
location /myweb/interface/sendData { 
proxy_pass http://myweb; 
#转发请求的原IP地址,程序中通过request.getHeader("Proxy-Client-IP")获得ip 
proxy_set_header Host $host; 
#如果是有涉及redirect的服务,一定要加上端口8081,否则默认tomcat在redirect时候默认找80端口 
#proxy_set_header Host $host:8081; 
proxy_set_header Proxy-Client-IP $remote_addr; 
} 
#设定请求转发规则, end 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
root html; 
} 
} 
} 

3.文件映射

/conf/nginx.conf中第一行的运行用户改为
user root;
location /uploadfile {
root /opt/staticdata/;
access_log /opt/nginx/logs/upload_access.log;
proxy_store_access user:rw group:rw all:rw;
}

当访问http://ip:port/uploadfile/aa/bb/cc.jpg
相当于访问 /opt/staticdata/uploadfile/aa/bb/cc.jpg

 

 

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 中标麒麟v7是中国自主研发的操作系统,它基于开源的Linux内核,具有稳定性和安全性的优势。要在中标麒麟v7安装nginx,可以按照以下步骤进行操作。 首先,我们需要下载nginx安装包。可以在nginx官方网站上下载最新版本的安装包,也可以选择从软件源中获取。 接下来,在中标麒麟v7上打开终端,以管理员身份登录。 然后,使用以下命令安装所需的编译工具和依赖项: ``` sudo apt-get update sudo apt-get install build-essential ``` 完成安装后,我们可以开始编译和安装nginx。首先,将下载的nginx安装包解压缩到一个目录中。 然后,进入解压后的目录,执行以下命令进行编译和安装: ``` ./configure make sudo make install ``` 这些命令将会执行配置、编译和安装过程。等待编译和安装完成后,我们就可以启动nginx了。 使用以下命令启动nginx服务: ``` sudo nginx ``` 如果不出现错误信息,说明nginx已经成功启动。我们可以通过在浏览器中输入服务器IP地址来访问nginx默认的欢迎页面,确认安装是否成功。 需要注意的是,如果系统中已经有其他的Web服务器正在运行(例如Apache),需要先停止该服务器再启动nginx,以避免端口冲突。 以上就是在中标麒麟v7安装nginx的简要步骤。使用这个流程,我们可以快速地将nginx安装中标麒麟v7操作系统上,为我们的网站提供高效的服务。 ### 回答2: 中标麒麟V7是一款基于Linux操作系统的服务器版本,而Nginx是一个高性能的Web服务器软件。要在中标麒麟V7安装Nginx,可以按照以下步骤进行操作: 1. 打开终端,使用root权限登录服务器(如果当前用户不是root用户)。 2. 下载Nginx软件包。可以通过访问Nginx官方网站,找到适合麒麟V7系统的软件包下载链接,并使用wget命令下载。 3. 解压软件包。使用tar命令解压下载的Nginx软件包,将其解压到指定的目录。 4. 进入解压后的目录。使用cd命令进入解压后的Nginx目录。 5. 配置Nginx。执行 './configure' 命令进行配置。可以根据需要添加或修改一些配置参数。 6. 编译和安装Nginx。执行'make'命令进行编译,然后执行'make install'命令进行安装。这可能需要一些时间,请耐心等待。 7. 启动Nginx。执行'systemctl start nginx'命令来启动Nginx服务。 8. 验证安装。打开浏览器,输入服务器的IP地址或域名,如果能够正确显示Nginx的默认欢迎页面,则表明安装成功。 9. 配置开机启动。执行'systemctl enable nginx'命令,将Nginx添加到系统的自启动服务中。 通过以上步骤,您就可以在中标麒麟V7上成功安装并配置Nginx,用于提供高性能的Web服务。如果有需要,您还可以进一步对Nginx进行配置,以满足具体需求。 ### 回答3: 首先,麒麟v7是中国国产的一种操作系统,它是基于Linux开发的。而nginx是一款开源的高性能Web服务器和反向代理服务器。 要在中标麒麟v7安装nginx,可以按照以下步骤进行操作: 1. 在麒麟v7上打开终端,可以使用快捷键Ctrl + Alt + T来打开终端。 2. 使用管理员权限登录,输入以下命令来切换到超级用户模式: ``` sudo su ``` 3. 输入超级用户密码进行身份验证。 4. 使用以下命令来安装nginx: ``` apt-get update apt-get install nginx ``` 5. 系统将开始下载并安装nginx软件包。 6. 在安装过程中,系统会询问是否继续安装,输入‘y’并按Enter键。 7. 安装完成后,可以使用以下命令启动nginx服务: ``` systemctl start nginx ``` 8. 可以使用以下命令检查nginx服务的运行状态: ``` systemctl status nginx ``` 9. 若一切正常,可以通过在Web浏览器中输入服务器的IP地址或域名来访问默认的nginx欢迎页面。 请注意,如果服务器上已经有其他Web服务器或端口被占用,需要解决该冲突,否则nginx可能无法正常启动。 总的来说,通过以上步骤按照顺序操作,就可以成功在中标麒麟v7安装并配置nginx,以便部署和运行网站或其他Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值