Nginx的简单使用,配置多前端,多端口【微信小程序+前后端分离跨域解决】

微信小程序

微信小程序需要服务器要有域名,不能有端口,但是我还有一个WebSocket的wss协议路径需要填,都是后台的

示例配置文件,配置https转发http,配置https转发wss

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
		#include luawaf.conf;

		include proxy.conf;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
		fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
		limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;

  server {
	    listen       443 ssl;
        server_name  www.xxx.com;
     
        #配置证书的路径
        ssl_certificate      keys/5408289_wdestian0918.icu.pem;
        ssl_certificate_key  keys/5408289_wdestian0918.icu.key;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        
        # 普通的https请求
        location / {
             #配置转发到10086端口
            proxy_pass http://wdestian0918.icu:10086;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Port $server_port;
        }
        
        # WebSocket 请求
	    location /wx {
            proxy_pass http://wdestian0918.icu:10086;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
        
      
    }

include /www/server/panel/vhost/nginx/*.conf;
}


访问时,通过https://wdestian0918.icu访问,https://wdetians0918.icu/根路径访问后台,https://wdetian0918.icu/wx 访问websocket

前后端跨域解决+一个端口下多前端项目

虽然再同一台服务器,但是如果使用nginx 配置10086 为前端项目,那么springboot用不了10086端口了,被占用了,这样只能开另外一个端口,就跨端口了。
解决:在server中转发,一个server就会占用一个端口

  server{

	listen  7200;
	server_name xupt-acat-interview-sign-up:7200;
	
	location / {
		root /home/acat/ACAT/acat_client;	
		index index.html;# acat_client目录下index.html页面
	}
 	
	location /acat_sign {
		alias  /home/acat/ACAT/acat_sign ;
		index index.html;
	}

	location /stu {
		proxy_pass http://localhost:7201;
   	}  
	}

访问请求:ip:7200/ 访问根目录下项目,ip:7200/acat_sign访问acat_sign下项目,
前端项目内,请求后台格式 ip:7200/stu nginx会转发到本机7201端口下的项目。

多端口

就是配置多个server
我的问题是
ping: smtp.qq.com: Temporary failure in name resolution 这个就是解析不了域名
解决方法:Temporary failure in name resolution(域名解析暂时失败)解决方法


还有一个数据库问题,也记录一下
ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’ 修改数据库密码
我的需求是服务器 root权限我没有,我只能sudo mysql -uroot -p 登陆
而且数据库普通用户acat的密码我也不知道,但是可以登陆上去root用户。
SET PASSWORD FOR ‘username’@‘hostname’ = PASSWORD (‘newpwd’);
9、 root修改普通用户密码

上一篇:Centos下安装nginx步骤解析


下一篇:debian安装部署nginx